struts2 当上传文件为空时不会在临时目录创建该文件,应用会抛出FileNotFoundException 下面是一种替代方法 创建后也不必删除,因为是空文件。
public String saveCreateDoc(){
try{
this.doc.setUser(this.getCurrentUser()); //文档创建人
this.doc.setDocLatestVersion(1l); //新建档案时的版本为第一个版本
this.docService.txStore(doc); //保存文档
//获取系统配置文件
ProjectConfig pc = ProjectConfig.getInstance();
//保存上传文件
InputStream is;
//此处的try catch 处理是为了处理struts2 上传文件大小为0KB的bug, 当文件为空时,在临时目录创建一个同名文件
try{
is = new FileInputStream(this.docFile);
}catch(FileNotFoundException e)
{
File tempfile = new File(pc.getFileSaveTempDir() + pc.getFileDirSeparator() + this.docFileFileName);
if(!tempfile.exists()){
tempfile.createNewFile();
}
is = new FileInputStream(tempfile);
}
OutputStream os = new FileOutputStream(pc.getFileSaveDir() + pc.getFileDirSeparator() + docFileFileName);
byte[] buffer = new byte[400];
int length = 0;
while((length = is.read(buffer)) > 0){
os.write(buffer, 0, length);
}
//关闭输出流
os.close();
}catch(Exception e){
LOG.error("新建档案--保存档案发生错误--档案名称为:" + doc.getDocName(), e);
}
return SUCCESS;
}
分享到:
相关推荐
在文件上传场景中,Struts2主要负责接收前端发送的文件数据,并将这些数据存储到服务器的指定位置。配置Struts2的Action类和相应的XML配置文件,可以定义文件上传的处理逻辑。 接着,jQuery是一个高效、简洁的...
1. **.struts2配置**:在Struts2框架中,需要在`struts.xml`配置文件中添加相应的action配置,声明文件上传的处理方法。通常,你需要设置`<result>`类型为`stream`,以便处理上传的文件。 2. **Action类**:创建一...
这个"Struts2+上传文件源码"是一个演示如何在Struts2框架下实现文件上传的示例代码。 首先,我们来理解上传文件的基本流程。在Struts2中,文件上传是通过`Commons FileUpload`库来处理的,这是一个Apache提供的开源...
本示例将详细介绍如何在Struts2框架下实现一个简单的文件上传功能。 首先,我们需要理解Struts2文件上传的基本原理。Struts2提供了一个名为`FileUpload interceptor`的拦截器,用于处理文件上传请求。这个拦截器会...
在Struts2中实现文件上传是一项常见的需求,这通常涉及到客户端浏览器与服务器之间的数据交互,以及服务器端对上传文件的处理。下面我们将深入探讨如何在Struts2框架下实现文件上传。 首先,我们需要在HTML表单中...
本文将详细介绍如何在Struts1中实现单文件上传和多文件上传,并探讨如何解决上传文件大小限制的问题。 #### 二、单文件上传 ##### 1. JSP页面设计 为了实现单文件上传,我们需要在JSP页面中创建一个表单,该表单...
### Struts2文件上传知识点详解 #### 一、概述 在Web开发中,文件上传是一项常见功能。Struts2框架提供了简洁高效的API来处理文件上传需求。本文将深入讲解Struts2框架中如何通过Action类实现文件上传,并对其中的...
这篇博客“关于Struts2的文件上传”深入探讨了如何在Struts2框架下实现这一功能。 首先,我们要理解Struts2文件上传的基本原理。它依赖于Apache的Commons FileUpload库,该库处理HTTP多部分请求,允许用户通过表单...
在Struts1中实现文件上传,我们需要考虑前端的HTML表单、ActionForm、Struts配置文件以及后台的Action处理。 首先,前端实现是通过一个支持多文件选择的HTML表单来完成的。表单需要设置`enctype="multipart/form-...
其中`fileUploadStack`是Struts2内置的文件上传拦截器,用于处理文件上传的细节。 2. **创建Action类**: 创建一个继承自`ActionSupport`的类,例如`FileUploadAction`,并添加文件属性及对应的getter和setter...
通过这个"struts2upload"项目,我们可以学习到Struts2框架中关于文件上传的完整流程,包括配置、Action处理、JSP页面设计等,这对于理解和实现基于Struts2的文件上传功能非常有帮助。同时,这也是一个很好的实践项目...
### Struts 实现多文件上传知识点解析 #### 一、Struts框架简介 在深入了解如何使用Struts框架实现多文件上传之前,我们首先简要回顾一下Struts框架的基础概念及其重要性。 Struts是一个开源的MVC(Model-View-...
Struts2是一个流行的Java ...在Struts2中,我们可以使用`org.apache.struts2.interceptor.FileUploadInterceptor`拦截器来处理文件上传。为了启用这个拦截器,我们需要在struts.xml配置文件中添加以下配置: ```xml ...
在Struts2中处理多文件上传是一项常见的需求,特别是在处理用户提交的表单时,例如上传图片、文档或其他多媒体文件。这个场景中,我们需要确保每个上传的文件与表单中的特定字段相对应,以便正确地存储和处理这些...
在Struts2中,文件上传和下载是常见的功能,它们允许用户在客户端与服务器之间交换文件。本篇文章将深入探讨Struts2中的文件上传和下载机制。 一、文件上传 1. **配置Action支持文件上传** 在Struts2中,要实现...
struts2+hibernate+spring,struts2文件上传带进度条,页面美观,功能齐全。下载后把工程导入到myeclipse后即可运行,不需任何配置。由于压缩后文件较大,所以该功能下的lib为空,下载后请自己导入struts2,hibernate...
在图片上传的场景下,Action类需要处理文件上传的请求,包括接收文件、处理文件(如缩放、添加水印)、保存文件到服务器等操作。上述代码片段展示了如何在Action类中实现这些功能。例如,使用`BufferedInputStream`...
在Struts2中,实现文件上传功能是一项常见的需求,例如用户可能需要上传图片、文档或其他类型的文件。本实例主要关注如何在Struts2框架下进行文件上传。 首先,我们需要在Struts2配置文件(通常为struts.xml)中...
和文件上传类似,配置Struts2的结果映射,让Action方法处理完文件下载后返回一个空的结果,避免页面重定向。 ### 三、安全注意事项 1. **文件名安全** 上传的文件名可能包含恶意字符,如路径遍历攻击,因此在...
Struts2图片上传功能是Web应用中常见的需求,它允许用户在前端选择本地...需要注意的是,实际项目中还需要考虑安全性问题,如防止文件覆盖、XSS攻击、目录遍历等,以及优化上传性能,如使用异步上传、多文件上传等。