应该和文件类型没有关系,你要设置一下:
        DiskFileItemFactory factory = new DiskFileItemFactory();
        //设置内存缓冲区,超过后写入临时文件
        factory.setSizeThreshold(10240000);
        //设置临时文件存储位置
        factory.setRepository(new File(request.getRealPath("/upload/temp")));
        ServletFileUpload upload = new ServletFileUpload(factory);
        //设置单个文件的最大上传值
        upload.setFileSizeMax(500*1024*1024);
        //设置整个request的最大值
        upload.setSizeMax(500*1024*1024);

解决方案 »

  1.   

    这么写有问题吗?
    DiskFileUpload fu = new DiskFileUpload();
     // 设置允许用户上传文件大小,单位:字节
     fu.setSizeMax(10000000);
     // maximum size that will be stored in memory?
     // 设置最多只允许在内存中存储的数据,单位:字节
     fu.setSizeThreshold(4096);
     // 设置一旦文件大小超过getSizeThreshold()的值时数据存放在硬盘的目录
     fu.setRepositoryPath("/tmp");
     //开始读取上传信息
     List fileItems = null;
     try
     {
      fileItems = fu.parseRequest(request);
     }catch(FileUploadException ex)
     {
      System.out.println(ex.getMessage());
     }
      

  2.   

    按照我的配置你配置一下就应该没有什么问题了主要是那些数据,当然setRepositoryPath就不用和我的一样了。