需引入两个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控件是用于处理用户上传文件的核心组件,尤其在Web应用程序中,它提供了方便的文件上传功能。以下是对标题和描述中涉及的知识点的详细解释: 1. **FileUpload控件的使用**:在ASP.NET环境中,...
3. **Ajax异步上传**:利用XMLHttpRequest或Fetch API实现文件的异步上传,这样可以在不刷新页面的情况下完成文件传输。 4. **进度条显示**:通过监听上传进度事件,可以更新进度条展示文件上传的状态。 5. **错误...
在Web开发中,允许用户上传文件是常见的需求,例如提交简历、上传图片或者分享文档。HTTP协议本身并不支持文件上传,但是通过MIME多部分/相关格式,我们可以将文件内容作为POST请求的一部分发送。Apache Commons ...
该库提供了解析请求、存储上传文件和处理异常的能力。 **二、基本原理** 文件上传涉及到客户端和服务器之间的交互。用户通过HTML表单选择文件后,浏览器将文件封装成多部分数据,发送到服务器。FileUpload库负责...
FileUpload 文件上传组件的ASP.NET实例,基于主副窗口的上传程序,利用线程提升上传... ASP.NET FileUpload上传图片并解决上传限制 解决FileUpload控件上传文件大小限制 ASP.NET中实现FileUpload多文件上传
综上所述,FileUpload控件的客户端验证是Web应用中必不可少的一环,它结合了JavaScript、jQuery和HTML5等技术,确保了用户上传文件的安全性和合法性。同时,服务端验证作为补充,为整个文件上传过程提供了额外的安全...
5. **前端进度条展示**:利用JavaScript更新DOM元素,如创建一个`<progress>`元素或者通过CSS样式改变某个元素的宽度,来展示文件上传的进度。 6. **错误处理**:文件上传可能会失败,因此需要处理`error`事件,并...
首先,FileUpload控件是ASP.NET提供的一种内置控件,它允许用户在网页上选择一个或多个文件进行上传。在设计阶段,我们可以在ASP.NET Web Form的HTML部分添加这个控件,如下所示: ```html <asp:FileUpload ID=...
Apache Commons FileUpload是Apache软件基金会的一个子项目,它提供了处理HTTP请求中multipart/form-data类型的工具,这是HTML表单上传文件的标准格式。通过这个库,开发者可以轻松地解析请求,获取上传文件的信息...
Apache Commons FileUpload 是一个用于处理 HTTP 请求中多部分(multipart)数据的 Java 库,尤其适合上传文件。在本文中,我们将深入探讨如何利用该库实现多个文件的上传功能。 一、准备工作 在使用 Apache ...
在IT领域,特别是Web开发中,...通过以上解析,我们可以看出,利用FileUpload控件上传图片和附件的过程虽然看似简单,但涉及到了多个关键的技术点。正确理解和应用这些技术,可以显著提升Web应用程序的功能性和安全性。
标题“org.apache.commons.fileupload 文件上传至数据库”指的是使用Apache Commons FileUpload库将用户上传的文件存储到数据库中的技术。Apache Commons FileUpload是Apache软件基金会的一个开源项目,它提供了一个...
在现代Web应用中,文件上传是一个常见的功能,而将文件转换为Base64编码的数据URI(data URI scheme)则有助于实现异步上传、预览文件等需求。`vue-base64-file-upload`是一个专为Vue.js设计的组件,它简化了这一...
开发者可以利用fileupload控件和相关的事件处理机制,结合页面验证控件,来实现安全而高效的文件上传功能。不过,实现过程中,必须考虑到安全性问题,合理限制文件类型和文件大小,并确保服务器的安全性,避免未授权...
- **安全性**:限制上传文件的类型和大小,避免上传恶意文件。 - **性能优化**:使用缓冲区进行文件读写,减少I/O操作对系统的影响。 - **用户体验**:提供上传进度显示,让用户了解上传状态。 - **错误处理**:...
1. **多文件选择**:fileupload.js允许用户一次选择多个文件进行上传,提高了上传效率。 2. **文件预览**:对于支持的文件类型,如图片,fileupload.js可以生成预览图,让用户在上传前确认文件内容。 3. **进度反馈*...
在ASP.NET开发中,FileUpload控件是用于处理用户上传文件的核心组件,特别是处理图片上传时,为了提供更好的用户体验,通常需要在用户正式提交前实现图片预览功能。这一功能可以减少用户因错误选择或不符合规格的...
在.NET框架中,C#是一种常用的编程语言,用于构建各种应用程序,包括Web应用程序。...提供的“利用C#Fileupload上传控件上传任意大小的文件.txt”文档应该包含更详细的步骤和示例代码,可以作为学习和参考的资源。
- 需要对上传文件的类型、大小等进行限制,防止恶意文件上传。 - 对上传文件的文件名进行安全性检查,避免注入攻击。 2. **性能优化**: - 可以考虑使用缓存机制减少磁盘 I/O 操作。 - 对于大文件上传,可以...