private String fileTmpPath = "";
private int fileSize = 100;
private static UpLoadFile loadFile = new UpLoadFile();
public UpLoadFile() {
}
public UpLoadFile getInstance() {
return loadFile;
}
/**
* 缓存上传二进制文件
* @param request 请求url
* @return ServletFileUpload 对象
*/
public ServletFileUpload configUploadTerm(HttpServletRequest request) {
FileCleaningTracker fileCleaningTracker = FileCleanerCleanup
.getFileCleaningTracker(request.getSession()
.getServletContext());
DiskFileItemFactory diskFileItemFactory = new DiskFileItemFactory();
// 设置最多只允许在内存中存储的数据,单位:字节
diskFileItemFactory.setSizeThreshold(1024 * fileSize);
// 设置一旦文件大小超过getSizeThreshold()的值时数据存放在硬盘的目录
diskFileItemFactory.setRepository(new File(fileTmpPath));
diskFileItemFactory.setFileCleaningTracker(fileCleaningTracker);
ServletFileUpload upload = new ServletFileUpload(diskFileItemFactory);
upload.setHeaderEncoding("utf-8");
//上传文件的最大值
upload.setSizeMax(1024 * fileSize);
return upload;
}
public int upLoadFiles(HttpServletRequest request){
ServletFileUpload fileUpload = configUploadTerm(request);
try {
List<?> list = fileUpload.parseRequest(request);
for(int i = 0 ; i < list.size() ; i ++){
FileItem fileItem = (FileItem) list.get(i);
if(!fileItem.isFormField()){
try{
BufferedReader reader = new BufferedReader(new InputStreamReader(fileItem.getInputStream(),"gbk"));
while(null != reader.readLine()){
System.out.println("行记录"+reader.readLine());
}
}catch (Exception e) {
}
}else{
String s = new String(fileItem.getString().getBytes("iso-8859-1"),"utf-8");
System.out.println("普通文本" + fileItem.getFieldName() + "\t" + s);
}
}
return 1;
} catch (FileUploadException e) {
e.printStackTrace();
return 0;
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
return 0;
}
}
分享到:
相关推荐
这个"最全的common-FileUpload.jar包"结合了两个关键的Apache Commons库,为开发者提供了强大的文件上传解决方案,无论是小型项目还是大型企业级应用,都能从中受益。通过深入理解和有效利用这些工具,可以极大地...
每个FileItem对象代表一个上传的文件或表单字段,你可以通过它读取文件内容或获取表单字段的值。 总之,`Common-fileupload`是一个强大且灵活的工具,对于处理Web应用中的文件上传需求非常有用。通过研究提供的源码...
在Java开发中,`common...总之,`common-io`和`common-fileupload`是Java开发中的强大工具,它们简化了常见的I/O操作和文件上传处理,提高了开发效率。了解并熟练运用这些库,能帮助开发者更好地应对实际项目中的挑战。
在`MyProject`这个压缩包中,可能包含了使用`common-fileupload`进行文件上传和下载的示例代码,你可以解压后查看具体实现。通过阅读和理解代码,可以更好地掌握文件上传下载的实践应用。在实际开发中,结合源码和...
3. **读取文件**:使用Commons IO库读取文件内容,将其写入到响应的输出流中。 4. **关闭流**:确保所有的流都被正确关闭,避免资源泄漏。 五、代码示例 ```java // 文件上传 public class UploadServlet extends ...
首先,通过FileUpload解析请求,获取到上传的FileItem对象,然后使用IO工具处理文件内容,如保存到服务器或数据库。对于下载,可以使用IO工具读取服务器上的文件并写入到HTTP响应中。 总的来说,`common-fileupload...
Apache Commons FileUpload与Apache Commons IO是Java开发中处理文件上传的两个重要库,它们在Web应用中被广泛使用。这两个库分别提供了不同的功能,但在处理文件上传时常常一起使用。 `commons-fileupload-1.2.1....
例如,你可以用Commons FileUpload来处理文件上传请求,然后使用Commons IO来操作上传后的文件,最后通过Commons BeanUtils来处理和验证上传文件的相关属性信息。这些库的结合使用,大大提升了开发效率,减少了代码...
4. **流式处理**: `FileWrapper`可以提供读取文件内容的流,以便在不完全加载到内存的情况下进行处理,这对于大文件上传尤为有用。 5. **临时文件管理**: 可以在`FileWrapper`中实现临时文件的生命周期管理,如上传...
本文档旨在通过详细解读《深入体验 JavaWeb 开发内幕—高级特性》一书中关于Apache Commons FileUpload的部分内容,帮助初学者快速掌握文件上传功能的实现。 #### 二、准备工作 1. **环境搭建**: - **Tomcat版本...
在处理文件上传时,Commons IO库可以用来创建、移动、复制或删除文件,读取文件内容,以及进行各种类型的数据转换。例如,`FileUtils`类提供了大量的静态方法,用于执行文件和目录的操作;`IOUtils`类则提供了对输入...
10. **与其他Apache Commons库的集成**:Apache Commons FileUpload经常与另一个Apache Commons组件——Commons IO一起使用,共同处理文件I/O操作,例如读取和写入文件。 通过分析"commons-fileupload-1.3.2-src...
`common_fileupload详解.doc`文档应该提供了关于库的详细使用指南、API参考和示例代码。通过阅读文档,你可以快速掌握如何在项目中集成和使用`commons-fileupload`。 总的来说,Apache Commons FileUpload库极大地...
例如,`FileUtils`类提供了方便的文件操作方法,而`InputStreamReader`和`BufferedReader`可以帮助读取上传文件的内容。 2. **Apache Commons FileUpload** `commons-fileupload-1.2.1.jar`是另一个关键组件,它是...
- 使用`FileUpload`时要注意安全性,防止上传恶意文件或过大文件导致服务器磁盘空间耗尽。 - 对于`IOUtils`,注意正确关闭流,尤其是在多线程环境下,确保资源的及时释放。 总之,Apache Commons IO和FileUpload...
在使用 Apache Commons FileUpload 进行文件上传之前,你需要确保以下组件已经准备就绪: 1. **引入依赖**:首先,你需要下载并添加 `org.apache.commons.io` 和 `log4j` 的 JAR 包到你的项目类路径中。在本例中,`...
然后,使用`commons-io`的`FileUtils`类读取文件内容,并写入到响应的输出流中。 总的来说,`commons-fileupload`和`commons-io`这两个库为Java开发者提供了强大的文件上传和下载支持,简化了相关操作,提高了代码...
我们使用了 Apache 的 common-fileupload 上传组件来实现文件上传功能,并使用 HttpServletResponse 的输出流来实现文件下载功能。通过本文的学习,读者可以了解 JavaWeb 中文件上传和下载的实现原理和方法。
2. **添加依赖库**:为了使项目能够使用Struts2框架以及文件上传功能,需要在项目的lib目录下添加Struts2的JAR包,以及Common-FileUpload或COS框架的相关JAR包,确保所有必要的依赖都已就绪。 3. **界面设计**:...