2 u012272728 u012272728 于 2014.07.26 18:26 提问

the request was rejected because no multipart boundary was found

服务器代码:DiskFileItemFactory factory = new DiskFileItemFactory();

//获取文件上传需要保存的路径,upload文件夹需存在。

String path = request.getSession().getServletContext().getRealPath("/upload");
//设置暂时存放文件的存储室,这个存储室可以和最终存储文件的文件夹不同。因为当文件很大的话会占用过多内存所以设置存储室。

factory.setRepository(new File(path));

//设置缓存的大小,当上传文件的容量超过缓存时,就放到暂时存储室。

factory.setSizeThreshold(1024*1024);

//上传处理工具类(高水平API上传处理?)

ServletFileUpload upload = new ServletFileUpload(factory);

    try{  
        //调用 parseRequest(request)方法  获得上传文件 FileItem 的集合list 可实现多文件上传。
        List<FileItem> list = upload.parseRequest(request); 
        for(FileItem item:list){  
            //获取表单属性名字。  
            String name = item.getFieldName();  
            //如果获取的表单信息是普通的文本信息。即通过页面表单形式传递来的字符串。  
            if(item.isFormField()){  
                //获取用户具体输入的字符串,  
                String value = item.getString();  
                request.setAttribute(name, value);  
            }  
            //如果传入的是非简单字符串,而是图片,音频,视频等二进制文件。  
            else{   
                //获取路径名  
                String value = item.getName();  
                //取到最后一个反斜杠。  
                int start = value.lastIndexOf("\\");  
                //截取上传文件的 字符串名字。+1是去掉反斜杠。  
                String filename = value.substring(start+1);  
                request.setAttribute(name, filename);  

                /*第三方提供的方法直接写到文件中。 
                 * item.write(new File(path,filename));*/  
                //收到写到接收的文件中。  
                OutputStream out = new FileOutputStream(new File(path,filename));  
                InputStream in = item.getInputStream();  

                int length = 0;  
                byte[] buf = new byte[1024];  
                System.out.println("获取文件总量的容量:"+ item.getSize());  

                while((length = in.read(buf))!=-1){  
                    out.write(buf,0,length);  
                }  
                in.close();  
                out.close();  
            }  
        }  
    }catch(Exception e){  
        e.printStackTrace();  
    }  
//  }

2个回答

u013339851
u013339851   2014.07.26 21:36

初步断定问题出在前端上传表单enctype属性上

u012347717
u012347717   2016.11.01 17:40

同楼主一致问题,求高手解答。在客户端已有设置connection.setRequestProperty("Content-Type", "multipart/form-data;file="+mcao.getFileName());

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!