`
jordan_micle
  • 浏览: 245683 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

利用fileupload进行上传文件

阅读更多

需引入两个jar包:commons-fileupload-1.2.jar和commons-io-1.3.2.jar

以表单提交到servlet中处理为例。


包含文件域的form为:

enctype="multipart/form-data"


STEP1:

实例化一个硬盘文件工厂,用来配置上传组件ServletFileUpload

DiskFileItemFactory factory = new DiskFileItemFactory();


STEP2:

设置上传文件时用于临时存放文件的内存大小(例如4K),多于的部分将临时存在硬盘

factory.setSizeThreshold(4 * 1024);


STEP3:

设置存放临时文件的目录


factory.setRepository(new File(临时文件目录的绝对路径));


STEP4:

用以上工厂实例化上传组件

ServletFileUpload upload = new ServletFileUpload(factory);


STEP5:

设置最大上传尺寸,如果10M

upload.setSizeMax(10 * 1024 * 1024);


然后,从request得到所有上传域的列表

List<?> fileItemList = upload.parseRequest(request);

得到所有上传的文件


Iterator<?> fileItemIt  = fileItemList .iterator();



循环处理所有文件

while (fileItemIt.hasNext()) {

    FileItem fileItem = (FileItem) fileItr.next();

    fileItem:

    1. 判断是否是文件域:isFormField()

    2. 文件的完整路径:getName()

    3. 文件的大小:getSize()

    保存上传而来的文件:

    fileItem.write(new File( 新文件的绝对路径 ));

}


当提交的form包含其他域(如<input type="text">或<input type="submit">)时,通过isFormField()方法判断后进行处理。


>>>>>2011 - 06 - 11更新:

 

用Apache Commons FileUpload来实现文件上传的时候,往往会遇到一些中文乱码的问题,有可能是获取的文件路径或者文件名称为乱码,也有可能获取的表单字段为乱码,以UTF-8编码为例,解决的办法如下:
调用FileUpload.settingHeaderEncoding("UTF-8"),这项设置可以解决路径或者文件名为乱码的问题。
在取字段值的时候,用FileItem.getString("UTF-8"),这项设置可以解决获取的表单字段为乱码的问题。

request.setCheracterEncoding("utf-8");
DiskFileUpload.setHeaderEncoding("utf-8");
FileItem.getString("utf-8");
 




分享到:
评论

相关推荐

    asp.net fileupload文件上传

    ASP.NET中的FileUpload控件是用于处理用户上传文件的核心组件,尤其在Web应用程序中,它提供了方便的文件上传功能。以下是对标题和描述中涉及的知识点的详细解释: 1. **FileUpload控件的使用**:在ASP.NET环境中,...

    fileUpload文件上传组件例子

    3. **Ajax异步上传**:利用XMLHttpRequest或Fetch API实现文件的异步上传,这样可以在不刷新页面的情况下完成文件传输。 4. **进度条显示**:通过监听上传进度事件,可以更新进度条展示文件上传的状态。 5. **错误...

    利用commons-fileupload上传组件上传文件(一)

    在Web开发中,允许用户上传文件是常见的需求,例如提交简历、上传图片或者分享文档。HTTP协议本身并不支持文件上传,但是通过MIME多部分/相关格式,我们可以将文件内容作为POST请求的一部分发送。Apache Commons ...

    commons-fileupload文件上传实例

    该库提供了解析请求、存储上传文件和处理异常的能力。 **二、基本原理** 文件上传涉及到客户端和服务器之间的交互。用户通过HTML表单选择文件后,浏览器将文件封装成多部分数据,发送到服务器。FileUpload库负责...

    FileUpload 文件上传组件的ASP.NET源码.rar

    FileUpload 文件上传组件的ASP.NET实例,基于主副窗口的上传程序,利用线程提升上传... ASP.NET FileUpload上传图片并解决上传限制  解决FileUpload控件上传文件大小限制  ASP.NET中实现FileUpload多文件上传

    FileUpload控件上传文件客户端验证格式

    综上所述,FileUpload控件的客户端验证是Web应用中必不可少的一环,它结合了JavaScript、jQuery和HTML5等技术,确保了用户上传文件的安全性和合法性。同时,服务端验证作为补充,为整个文件上传过程提供了额外的安全...

    fileupload文件上传进度条示例

    5. **前端进度条展示**:利用JavaScript更新DOM元素,如创建一个`&lt;progress&gt;`元素或者通过CSS样式改变某个元素的宽度,来展示文件上传的进度。 6. **错误处理**:文件上传可能会失败,因此需要处理`error`事件,并...

    asp.net中利用Fileupload实现的文件上传

    首先,FileUpload控件是ASP.NET提供的一种内置控件,它允许用户在网页上选择一个或多个文件进行上传。在设计阶段,我们可以在ASP.NET Web Form的HTML部分添加这个控件,如下所示: ```html &lt;asp:FileUpload ID=...

    apache fileupload 文件上传实例

    Apache Commons FileUpload是Apache软件基金会的一个子项目,它提供了处理HTTP请求中multipart/form-data类型的工具,这是HTML表单上传文件的标准格式。通过这个库,开发者可以轻松地解析请求,获取上传文件的信息...

    利用org.apache.commons.fileupload上传多个文件

    Apache Commons FileUpload 是一个用于处理 HTTP 请求中多部分(multipart)数据的 Java 库,尤其适合上传文件。在本文中,我们将深入探讨如何利用该库实现多个文件的上传功能。 一、准备工作 在使用 Apache ...

    fileupload控件上传图片和附件

    在IT领域,特别是Web开发中,...通过以上解析,我们可以看出,利用FileUpload控件上传图片和附件的过程虽然看似简单,但涉及到了多个关键的技术点。正确理解和应用这些技术,可以显著提升Web应用程序的功能性和安全性。

    C#Fileupload上传控件上传任意大小的文件

    在.NET框架中,C#是一种常用的编程语言,用于构建各种应用程序,包括Web应用程序。...提供的“利用C#Fileupload上传控件上传任意大小的文件.txt”文档应该包含更详细的步骤和示例代码,可以作为学习和参考的资源。

    org.apache.commons.fileupload 文件上传至数据库

    标题“org.apache.commons.fileupload 文件上传至数据库”指的是使用Apache Commons FileUpload库将用户上传的文件存储到数据库中的技术。Apache Commons FileUpload是Apache软件基金会的一个开源项目,它提供了一个...

    vuebase64fileupload利用Vuejs将上传文件作为base64datauris

    在现代Web应用中,文件上传是一个常见的功能,而将文件转换为Base64编码的数据URI(data URI scheme)则有助于实现异步上传、预览文件等需求。`vue-base64-file-upload`是一个专为Vue.js设计的组件,它简化了这一...

    asp.net fileupload控件上传文件与多文件上传

    开发者可以利用fileupload控件和相关的事件处理机制,结合页面验证控件,来实现安全而高效的文件上传功能。不过,实现过程中,必须考虑到安全性问题,合理限制文件类型和文件大小,并确保服务器的安全性,避免未授权...

    使用commons-fileupload实现的文件上传和下载

    - **安全性**:限制上传文件的类型和大小,避免上传恶意文件。 - **性能优化**:使用缓冲区进行文件读写,减少I/O操作对系统的影响。 - **用户体验**:提供上传进度显示,让用户了解上传状态。 - **错误处理**:...

    基于fileupload.js文件上传

    1. **多文件选择**:fileupload.js允许用户一次选择多个文件进行上传,提高了上传效率。 2. **文件预览**:对于支持的文件类型,如图片,fileupload.js可以生成预览图,让用户在上传前确认文件内容。 3. **进度反馈*...

    fileupload上传图片前预览

    在ASP.NET开发中,FileUpload控件是用于处理用户上传文件的核心组件,特别是处理图片上传时,为了提供更好的用户体验,通常需要在用户正式提交前实现图片预览功能。这一功能可以减少用户因错误选择或不符合规格的...

    commons-fileupload实现文件上传下载

    - 需要对上传文件的类型、大小等进行限制,防止恶意文件上传。 - 对上传文件的文件名进行安全性检查,避免注入攻击。 2. **性能优化**: - 可以考虑使用缓存机制减少磁盘 I/O 操作。 - 对于大文件上传,可以...

Global site tag (gtag.js) - Google Analytics