日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

Spring Boot文档阅读笔记-FileHandling解析及抓包分析

發布時間:2025/3/15 javascript 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Spring Boot文档阅读笔记-FileHandling解析及抓包分析 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

這篇博文將說明使用WEB服務上傳和下載文件。

首先是文件上傳:

使用MultipartFile作為請求參數,這個上傳API使用Multi-Part表單的值:

代碼如下:

@PostMapping(value = "/upload", consumes = MediaType.MULTIPART_FORM_DATA_VALUE)public String fileUpload(@RequestParam("file")MultipartFile file) throws IOException {File convertFile = new File("./" + file.getOriginalFilename());convertFile.createNewFile();FileOutputStream fout = new FileOutputStream(convertFile);fout.write(file.getBytes());fout.close();return "File is upload successfully";}

下面是文件下載:

使用InputStreamResource獲取需要下載的文件,然后將http頭設置為Content-Disposition,并且還需指定響應為流媒體。

完整代碼如下:

@GetMapping(value = "/download")public ResponseEntity<Object> download(@RequestParam("fileName") String fileName) throws FileNotFoundException {File file = new File(fileName);InputStreamResource inputStreamResource = new InputStreamResource(new FileInputStream(file));HttpHeaders httpHeaders = new HttpHeaders();httpHeaders.add("Content-Disposition", String.format("attachment; filename=\"%s\"", file.getName()));httpHeaders.add("Cache-Control", "no-cache, no-store, must-revalidate");httpHeaders.add("Pragma", "no-cache");httpHeaders.add("Expires", "0");ResponseEntity<Object> responseEntity = ResponseEntity.ok().headers(httpHeaders).contentLength(file.length()).contentType(MediaType.parseMediaType("application/txt")).body(inputStreamResource);return responseEntity;}

使用如下:

上傳成功后,會在這個目錄中存在文件:

項目打包下載地址:

https://github.com/fengfanchen/Java/tree/master/SpringBootFileHandling

?

下面來分析下這個過程:

使用Fiddler抓包如下:

上傳文件

從中可以看到,content-type為multipart/formdata其中邊界分隔符為后面那個。他傳的其實是二進制。

content-Disposition為內容傾向,為表單數據,name為程序中需要提交的鍵,filename為文件名。

下面的行,就是文件內容了。

?

下面來看看下載:

輸入URL會激活IDM的下載

Fiddler下載如下:

這里的返回為Content-Disposition:為attachment說明是附件以及filename="cff.pdf",很多瀏覽器就是根據這條來判斷,是文件的。

如果沒有這條,就不會激發瀏覽器的下載。

?

?

?

?

總結

以上是生活随笔為你收集整理的Spring Boot文档阅读笔记-FileHandling解析及抓包分析的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。