`

使用common-fileupload组件文件上传需要注意的问题

阅读更多

1.上传文件的中文乱码
 1.1 解决文件的乱码
  ServletFileUpload.setHeaderEncoding("UTF-8")
 1.2 解决普通输入项的乱码(注意,表单类型为multipart/form-data的时候,设置request的编码是无效的)
  FileItem.setString("UTF-8");  //解决乱码

2.在处理表单之前,要记得调用:
 ServletFileUpload.isMultipartContent方法判断提交表单的类型,如果该方法返回true,则按上传方式处理,否则按照传统方式处理表单即可。


3.设置解析器缓冲区的大小,以及临时文件的删除
 设置解析器缓冲区的大小  DiskFileItemFactory.setSizeThreshold(1024*1024);
 临时文件的删除:在程序中处理完上传文件后,一定要记得调用item.delete()方法,以删除临时文件

4.在做上传系统时,千万要注意上传文件的保存目录,这个上传文件的保存目录绝对不能让外界直接访问到。

5.限制上传文件的类型
 在处理上传文件时,判断上传文件的后缀名是不是允许的

6.限制上传文件的大小
 调用解析器的ServletFileUpload.setFileSizeMax(1024*1024*5);就可以限制上传文件的大小,如果上传文件超出限制,则解析器会抛FileUploadBase.FileSizeLimitExceededException异常,程序员通过是否抓到这个异常,进而就可以给用户友好提示。


7.如何判断空的上传输入项
 String filename = item.getName().substring(item.getName().lastIndexOf("\\")+1);  //""
 if(filename==null || filename.trim().equals("")){
  continue;
 }

8、为避免上传文件的覆盖,程序在保存上传文件时,要为每一个文件生成一个唯一的文件名
 public String generateFileName(String filename){
  //83434-83u483-934934
  return UUID.randomUUID().toString() + "_" + filename;
 }

9、为避免在一个文件夹下面保存超过1000个文件,影响文件访问性能,程序应该把上传文件打散后存储。
 public String generateSavePath(String path,String filename){
  int hashcode = filename.hashCode();  //121221
  int dir1 = hashcode&15;
  int dir2 = (hashcode>>4)&0xf;
  
  String savepath = path + File.separator + dir1 + File.separator + dir2;
  File file = new File(savepath);
  if(!file.exists()){
   file.mkdirs();
  }
  return savepath;
 }

10、监听上传进度
  ServletFileUpload upload = new ServletFileUpload(factory);
   upload.setProgressListener(new ProgressListener(){
    public void update(long pBytesRead, long pContentLength, int pItems) {
     System.out.println("当前已解析:" + pBytesRead);
    }
   });

11、在web页面中添加动态上传输入项

分享到:
评论

相关推荐

    利用Common-fileupload封装的文件上传组件...附上源码.

    首先,我们来看一下标题:“利用Common-fileupload封装的文件上传组件...附上源码”。这表明我们将讨论如何使用这个库来创建一个文件上传系统,并且提供有源码可供参考。通过`Common-fileupload`,我们可以实现用户...

    Common-fileupload组件实现文件上传.pdf

    通过使用Common-fileupload组件,开发者可以轻松地在JSP环境中实现文件上传功能。该组件不仅提供了基本的文件上传功能,还支持高级特性如多文件上传、文件大小限制等。这对于提高Web应用程序的功能性和用户体验非常...

    最全的common-FileUpload.jar包

    这个"最全的common-FileUpload.jar包"结合了两个关键的Apache Commons库,为开发者提供了强大的文件上传解决方案,无论是小型项目还是大型企业级应用,都能从中受益。通过深入理解和有效利用这些工具,可以极大地...

    两篇网文:拦截器 Common-FileUpload

    接下来是Common-FileUpload组件。在"Common-FileUpload实现文件上传.doc"文档中,可能会详细介绍如何利用这个库来处理用户的文件上传请求。Common-FileUpload提供了一套完整的API,用于解析请求中的多部分数据,从而...

    使用commons-fileupload上传文件

    注意,这个示例中未处理任何异常,实际应用中需要添加适当的错误处理代码,以应对可能出现的问题,如文件大小限制、文件类型检查等。 通过使用`commons-fileupload`,开发者可以方便地在Java Web应用中实现文件上传...

    common-io,common-fileupload.jar等jar包

    使用`common-io`和`common-fileupload`时,开发者需要注意以下几点: - **错误处理**: 虽然这些库简化了操作,但错误处理仍然重要,如文件不存在、磁盘空间不足等问题。 - **安全性**: 在处理用户上传的文件时,必须...

    commons-fileupload-1.3.3&commons-fileupload-1.3.3架包和代码.rar

    综上所述,这些组件的结合使用,可以构建一个健壮的、能够处理文件上传以及与数据库交互的Java Web应用,是Java开发中常见的技术栈配置。开发者在实际项目中,可以通过这些工具来提升应用的稳定性和效率。

    Common-FileUpload带进度条文件上传

    3. Common-FileUpload库:这个库可能是一个专门为实现带进度条文件上传功能而设计的开源组件。它可能包含JavaScript、CSS和HTML代码,用于构建用户界面,以及后端处理逻辑。使用此类库可以简化开发者的工作,避免从...

    利用commons-fileupload组件实现文件上传-实例

    通过以上步骤,我们就使用Apache Commons FileUpload组件实现了一个基本的文件上传功能。你可以根据自己的需求对这个示例进行扩展,比如添加错误处理、文件类型检查和存储优化等。参考提供的博文链接,可以获取更多...

    common-fileupload

    在Java Web开发中,文件的上传和下载是常见的...以上就是关于`commons-fileupload`组件在Java Servlet环境下的文件上传与下载的实现原理和关键知识点。通过合理的使用和配置,我们可以实现安全、高效的文件操作功能。

    java+servlet+commons-io-2.4.jar+commons-fileupload-1.3.jar实现文件的上传与下载

    - 考虑安全性问题,如限制文件类型、大小,防止恶意文件上传。 - 为上传的文件提供唯一的存储路径,防止文件名冲突。 通过以上步骤,你可以实现基于Java Servlet和Apache Commons库的文件上传与下载功能。理解并...

    自己在用的 common-FileUpload.jar

    标题 "common-FileUpload.jar" 指向的是一个用于处理文件上传功能的Java库,具体来说是Apache Commons FileUpload组件的实现。这个组件广泛应用于Web应用开发中,特别是那些需要用户上传文件的场景,如图片上传、...

    common-fileupload&common-io

    "common-fileupload"和"common-io"是Apache Commons项目中的两个重要组件,它们为处理文件上传和输入/输出提供了强大的支持。接下来,我们将详细讨论这两个库的功能、使用方法及其在JSP应用中的重要性。 Apache ...

    java 图片上传系统 common-fileUpload

    Java 图片上传系统基于 `common-fileUpload` 模块实现,这是一个常见的用于处理文件上传的Java库。在Java Web开发中,文件上传功能是必不可少的一部分,尤其在涉及到用户提交图片时。`common-fileUpload` 是Apache ...

    commons-fileupload、commons-io文件

    浏览器在上传的过程中是将文件以流的形式提交到服务器端的,如果直接使用Servlet获取上传文件的输入流然后再解析里面的请求参数是比较麻烦,所以一般选择采用apache的开源工具common-fileupload这个文件上传组件。

    commons-fileupload文件上传组件中文教程--张孝祥写的

    - 创建`lib`目录,并下载Apache Commons FileUpload组件(版本1.0),解压后将`commons-fileupload-1.0.jar`放入`lib`目录。 - 创建`src`目录用于存放Java源代码,并编写`compile.bat`批处理文件以便于编译Java...

    commons-fileupload-1.2.2 common-io-2.0.1

    例如,你可以用Commons FileUpload来处理文件上传请求,然后使用Commons IO来操作上传后的文件,最后通过Commons BeanUtils来处理和验证上传文件的相关属性信息。这些库的结合使用,大大提升了开发效率,减少了代码...

    commons-fileupload-1.2.jar和commons-io-1.3.2.jar

    common-fileupload组件是apache的一个开源项目之一,可以从http://jakarta.apache.org/commons/fileupload/下载。该组件简单易用,可实现一次上传一个或多个文件,并可限制文件大小。 -下载后解压zip包,将commons-...

    common fileupload上传组件包

    "Common Fileupload上传组件包"是一个专用于处理Web应用程序中文件上传功能的工具包。这个包包含两个核心组件:`commons-io-1.4.jar`和`commons-fileupload-1.2.1.jar`。这两个组件在实现文件上传过程中扮演着至关...

Global site tag (gtag.js) - Google Analytics