super7jane 2014-07-26 10:26 采纳率: 0%
浏览 10689

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();  
    }  
//  }
  • 写回答

3条回答

  • 小闲石 2016-11-01 09:40
    关注

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

    评论

报告相同问题?

悬赏问题

  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器