读书人

Fileupload文件下传在Chrome上获取不到

发布时间: 2012-08-08 14:32:45 作者: rapoo

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

Java code
       // 解析 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+"表单域值为:"+value);                } else {                    // 如果item是文件上传表单域                    // 获得文件名及路径                    String fileName = item.getName();                    if (fileName != null) {                        // 如果文件存在则上传                        //String fullName = tempdir+"/"+item.getName();                        File fullFile = new File(fileName);                        if (fullFile.exists()) {                            String targetDirectory = request.getRealPath("/Attachment");                            String path = targetDirectory+"/" + fullFile.getName();                            File fileOnServer = new File(path);                            item.write(fileOnServer);                            System.out.println("文件" + fileOnServer.getName() + "上传成功");                        }                    }                }            }        }



[解决办法]
在火狐下也不能取到,IE下能取到,你是需要做预览这个功能吧,我们都是上传到服务器之后在回写路径预览的

读书人网 >J2EE开发

热点推荐