需要导入的包文件:commons-fileupload-1.1.1.jar和commons-io-1.1.jar
页面:
<form action = "/struts2/UploadServlet" method = "post" enctype = "multipart/form-data">
username:<input type = "text" name = "username"><br>
password:<input type = "password" name = "password"><br>
file1 :<input type = "file" name = "file1"><br>
file2 :<input type = "file" name = "file2">
<input type = "submit" value = "submit">
</form>
servlet:
public UploadServlet extends HttpServlet{
public void doPost(HttpRequest request,HttpResponse response) throw ServletException,IOException{
DiskFileItemFactory factory = new DiskFileItemFactory();
String path = request.getRealPath("/upload");//将upload目录作为临时存储的目录
factory.setRepository(new File(path));
factory.setSizeThreshold(1024*1024);//小于1M的文件写到内存中,如果大于1M则写入到磁盘中。
ServletFileUpload upload = new ServletFileUpload(factory);
try{
List<FileItem> list = upload.parseRequest(request);//一个FileItem对应表单中的一个组件,包括(文件类型、普通类型)并不是只对应文件类型
for(FileItem item:list){
if(item.isFormField()){//表单的属性是否为文件类型,不是文件类型true
String name = item.getFieldName();
String value = item.getString();//提取值
request.setAttribute(name,value);
}else{
String name = item.getFieldName();
String value = item.getName();//是文件类型才会返回文件的名称,如果是一般类型返回null
int start = name.lastIndexOf("\\");
String fileName = value.substring(start+1);//真正文件名
request.setAttribute(name,value);
item.write(new File(path,fileName);
//OutputStream os = new FileOutputStream(new FileFile(path,filename);
//InputStream is = item.getInputStream();
//byte[] buffer = new byte[400];
//int length = 0;
//while((length = is.read(buffer))>0){
// os.write(buffer,0,length);
//}
//os.close();
//is.close();
}
}
}
catch(Exception ex){
ex.printStackTrace();
}
request.getRequestDispatcher("upload/result2.jsp").forward(requet,response);
}
}
}
web.xml:
<servlet>
<servlet-name>UploadSerlvet</serlvet-name>
<servlet-class>com.test.serlvet.UploadSerlvet</serlvet-class>
</servlet>
<servlet-mapping>
<servlet-name>UploadSerlvet</serlvet-name>
<url-pattern>/UploadServlet</url-pattern>
</servlet-mapping>
分享到:
相关推荐
通过以上步骤,我们就使用Apache Commons FileUpload组件实现了一个基本的文件上传功能。你可以根据自己的需求对这个示例进行扩展,比如添加错误处理、文件类型检查和存储优化等。参考提供的博文链接,可以获取更多...
在本文中,我们将深入探讨如何使用Apache Commons FileUpload组件来实现文件上传功能。Apache Commons FileUpload是一个用于处理HTTP请求中的多部分数据的Java库,它使得在Servlet或JSP应用中处理文件上传变得简单易...
本篇文章将详细介绍如何利用Common-fileupload组件在JSP环境中实现文件上传功能。 #### 二、Common-fileupload组件介绍 Common-fileupload组件是由Apache开发维护的一个轻量级Java库,用于处理HTTP文件上传请求。...
在使用 Apache Commons FileUpload 进行文件上传之前,你需要确保以下组件已经准备就绪: 1. **引入依赖**:首先,你需要下载并添加 `org.apache.commons.io` 和 `log4j` 的 JAR 包到你的项目类路径中。在本例中,`...
首先,我们来看一下标题:“利用Common-fileupload封装的文件上传组件...附上源码”。这表明我们将讨论如何使用这个库来创建一个文件上传系统,并且提供有源码可供参考。通过`Common-fileupload`,我们可以实现用户...
Apache Commons FileUpload是Apache软件基金会开发的一个开源组件,专门处理HTTP请求中的多部分数据(multipart/form-data),这是文件上传的标准格式。该库提供了解析请求、存储上传文件和处理异常的能力。 **二、...
"FileUpload上传组件"是一个专为Java Web开发者设计的强大工具,用于处理用户通过网页上传文件的需求。在JSP(JavaServer Pages)环境中,...通过合理利用这个组件,我们可以构建出功能强大且用户友好的文件上传功能。
FileUpload组件是Apache Commons项目中的一个模块,主要处理HTTP协议中的文件上传功能。在Web开发中,用户可能需要上传图片、文档等文件,FileUpload组件提供了便捷的API,使得开发者可以轻松地处理这些复杂的文件...
本篇文章将深入探讨Apache Commons FileUpload组件的使用,以及在Java Web环境中如何进行文件上传。 首先,Apache Commons FileUpload组件是一个专门处理HTTP请求中的多部分/形式数据(通常用于文件上传)的库。它...
总的来说,Apache Commons IO库和其FileUpload组件是Java开发中处理文件上传的得力助手,它们提供了丰富的功能和高度的灵活性,使得文件上传操作变得简单易行。无论是在小型项目还是大型应用中,都值得我们去掌握和...
总的来说,"fileupload组件"结合Apache Commons IO和FileUpload,为Java Web开发提供了强大的文件上传解决方案。这两个库不仅提供了基本的文件操作功能,还解决了文件上传过程中的许多实际问题,简化了开发者的工作...
`commons-fileupload`组件是Apache Commons项目中的一个子项目,主要负责处理HTTP协议下的文件上传功能。在Web应用中,用户可能需要上传图片、文档等文件,这时`commons-fileupload`就发挥了重要作用。本篇文章将...
在Java Web开发中,文件上传是一项常见的功能,用于允许用户将本地文件传输到服务器。为了实现这个功能,开发者通常...在实际项目中,确保正确引用并合理利用这两个库,可以极大地提升文件上传功能的用户体验和稳定性。
在现代的Web开发中,上传文件到服务器是一项常见的需求。当上传的文件体积较大时,就涉及到一系列的...使用FileUpload组件实现的文件上传功能已经成功应用于多个项目中,证明了其在处理大文件上传时的稳定性和可靠性。
Commons-FileUpload 是 Apache 提供的一个用于处理 HTTP 文件上传的组件。它基于 Servlet 规范,并且能够解析来自 `multipart/form-data` 编码类型的 HTTP 请求。本文将详细介绍如何使用 Commons-FileUpload 实现...
FileUpLoad jar包提供了一套完整的文件上传解决方案,它可能包含了Apache Commons FileUpload库,这是一个常用的Java文件上传组件。该库支持多部分/表单数据解析,可以处理大文件上传,防止内存溢出,并且可以设置...
这个组件利用了Flash技术,可以在不刷新页面的情况下实现文件上传,提供了良好的用户体验。在本教程中,我们将深入探讨如何使用SwfUpload与`org.apache.commons.fileupload`库来实现文件上传功能。 Apache Commons ...
本项目实例聚焦于实现一个高效、用户友好的文件上传功能,利用了Ajax异步技术,实现了进度条显示,增强了用户体验。以下是这个项目涉及到的关键知识点: 1. **Ajax异步文件上传**:传统的文件上传通常会刷新整个...