gulang76
2008-10-14 15:39
浏览 293
已采纳

使用commons-fileupload.jar的几个问题.

在使用commons-fileupload.jar包进行文件的上传时的几个问题.

是使用DiskFileUpload好还是使用ServletFileupload好?

这两个类有什么区别?

另外用ServletFileupload上传文件时,如何限制文件的大小,限制上传文件的类型?

如果要对上传文件进行重命名,怎么重命名?

看了那些文档,但还不是很明白,希望高手多指点....
问题补充:
现在最主要的问题是如何对上传的文件进行重命名?

  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

1条回答 默认 最新

  • Bruce_X 2008-10-14 15:49
    已采纳

    ServletFileUpload ,之前的版本好像是DiskFileUpload,这个已经被Deprecated了,
    [code="java"]DiskFileItemFactory factory=new DiskFileItemFactory();
    ServletFileUpload fu=new ServletFileUpload(factory);
    //上传最大200MB
    fu.setSizeMax(200*1024*1024);
    //fu.setHeaderEncoding("UTF-8");
    factory.setSizeThreshold(1024*1024);
    //超过内存阀值就保存到temp目录,这里设为系统缓存路径
    factory.setRepository(new File(System.getProperty("java.io.tmpdir")));
    try {
    List fileItem = fu.parseRequest(request);

            for(Iterator iter=fileItem.iterator();iter.hasNext();){
                FileItem it=(FileItem)iter.next();
                if(!it.isFormField()){
    
                    String fileName=it.getName();
                    System.out.println(fileName);
                    File f=new File(folder+fileName);
                    it.write(f);
                }else{
                    if(it.getFieldName().equals("folder"))
                        folder=it.getString();
    
                }
    
            }
            } catch (FileUploadException e) {
                // TODO Auto-generated catch block
                //e.printStackTrace();
            } catch (Exception e) {
                // TODO Auto-generated catch block
                //e.printStackTrace();
            }[/code]
    
    打赏 评论

相关推荐 更多相似问题