http文件上传方式

http文件上传方式一、http的四种请求参数http四种请求参数方式:即form-data、x-www-form-urlencoded、raw、binary1,form-datahttp请求中的multipart/form-data,它会将表单的数据处理为一条消息,以标签为单元,用分隔符分开。既可以上传键值对,

大家好,欢迎来到IT知识分享网。

一、http的四种请求参数

http四种请求参数方式:即form-data、x-www-form-urlencoded、raw、binary

1,form-data

  http请求中的multipart/form-data,它会将表单的数据处理为一条消息,以标签为单元,用分隔符分开。既可以上传键值对,也可以上传文件。当上传的字段是文件时,会有Content-Type来说明文件类型;content-disposition,用来说明字段的一些信息;由于有boundary隔离,所以multipart/form-data既可以上传文件,也可以上传键值对,它采用了键值对的方式,所以可以上传多个文件。

2,x-www-form-urlencoded

  就是application/x-www-from-urlencoded,会将表单内的数据转换为键值对,比如,name=java&age = 23

3,raw

  可以上传任意格式的文本,可以上传text、json、xml、html等

4,binary

  相当于Content-Type:application/octet-stream,从字面意思得知,只可以上传二进制数据,通常用来上传文件,由于没有键值,所以,一次只能上传一个文件。如果想要同时传文件名,可以借用请求头“Content-Disposition”,设置文件名。

二、http三种上传方式

http三种上传方式:根据上述四种参数请求方式,其中urlencoded只能传输文本,因此http只有三种文件上传方式,form-data、raw、binary

1,针对form-data上传,springMVC后端接收写法

1 @RequestMapping(value="/upload", method = RequestMethod.POST) 2 public ResponseObject<?> upload(@RequestParam(value="file", required = true)MultipartFile file,HttpServletRequest request){ 3     String destination = "/filePath/"  + multipartFile.getOriginalFilename(); 4     File file = new File(destination); 5  multipartFile.transferTo(file); 6 }

2,针对raw与binary方式上传,servlet后端接收写法

 1 @RequestMapping(value = "/upload", method = RequestMethod.POST)  2 public ResponseObject<?> upload(MultipartFile multipartFile, HttpServletRequest request) {  3     try {  4         InputStream in = request.getInputStream();  5         String disposition = request.getHeader("Content-Disposition");  6         String fileName = null;  7         if (disposition != null && disposition.length() > 0) {  8             fileName = disposition.replaceFirst("(?i)^.*filename=\"?([^\"]+)\"?.*$", "$1");  9  } 10         if (fileName == null || fileName.length() <= 0) 11             fileName = new String("d:\\abcdef.xed"); 12         FileOutputStream fos = new FileOutputStream(fileName); 13         byte[] b = new byte[1024]; 14         int length; 15         while ((length = in.read(b)) > 0) { 16             fos.write(b, 0, length); 17  } 18  in.close(); 19  fos.close(); 20     } catch (Exception e) { 21         logger.error("file upload error", e); 22  } 23 }

 http文件上传方式

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/33956.html

(0)

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

关注微信