日期:2014-05-18  浏览次数:21002 次

Fileupload文件上传在Chrome下获取不到完整路径
Fileupload文件上传在Chrome下获取不到完整路径,但是在IE下面没有问题,String fileName = item.getName();得到的只是文件的名称。文件上传代码如下:

 
       // 解析 request,判断是否有上传文件
        boolean isMultipart = ServletFileUpload.isMultipartContent(request);
        if (isMultipart) {
            // 创建磁盘工厂,利用构造器实现内存数据储存量和临时储存路径
         String tempdir = request.getRealPath("/Attachment/temp");
            DiskFileItemFactory factory = new DiskFileItemFactory(1024 * 4, new File(tempdir));
            // 设置最多只允许在内存中存储的数据,单位:字节
            // factory.setSizeThreshold(4096);
            // 设置文件临时存储路径
            // factory.setRepository(new File("D:\\Temp"));
            // 产生一新的文件上传处理程式
            ServletFileUpload upload = new ServletFileUpload(factory);
             // 设置路径、文件名的字符集
            upload.setHeaderEncoding("UTF-8");
            // 设置允许用户上传文件大小,单位:字节
            upload.setSizeMax(1024 * 1024 * 100);
            // 解析请求,开始读取数据
            // Iterator<FileItem> iter = (Iterator<FileItem>) upload.getItemIterator(request);
            // 得到所有的表单域,它们目前都被当作FileItem
            List fileItems = upload.parseRequest(request);  //FileItem
            // 依次处理请求
            Iterator iter = fileItems.iterator(); //FileItem
            while (iter.hasNext()) {
                FileItem item = (FileItem) iter.next();
                if (item.isFormField()) {
                    // 如果item是正常的表单域
                    String name = item.getFieldName();
                    String value = item.getString("UTF-8");
                    System.out.println("表单域名为:"+name+"表单域