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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

restful api上传文件(基础)-springboot

發布時間:2024/9/15 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 restful api上传文件(基础)-springboot 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

restful api上傳文件(基礎)-springboot

基于restful api格式的文件上傳(只是上傳到本地):

package com.nxz.controller;import com.nxz.entity.FileInfo; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.multipart.MultipartFile;import java.io.File; import java.io.IOException; import java.util.Date;@RestController @RequestMapping("/file") public class FileController {@PostMappingpublic FileInfo update(MultipartFile file) throws IOException {System.out.println(file.getName());System.out.println(file.getOriginalFilename());System.out.println(file.getSize());String holder = "G:\\0001-myproject\\mysecurity\\mysecurity-demo\\src\\main\\java\\com\\nxz\\controller";File localFile = new File(holder, new Date().getTime() + ".txt");file.transferTo(localFile);return new FileInfo(localFile.getAbsolutePath());}}

?

測試用例:

//偽造的mvc環境@Autowiredprivate WebApplicationContext webApplicationContext;private MockMvc mockMvc;@Beforepublic void before() {mockMvc = MockMvcBuilders.webAppContextSetup(webApplicationContext).build();}@Testpublic void whenUploadSuccess() throws Exception {String file = mockMvc.perform(MockMvcRequestBuilders.fileUpload("/file").file(new MockMultipartFile("file", "test.txt", "multipart/form-data", "hello".getBytes("UTF-8")))).andExpect(MockMvcResultMatchers.status().isOk()).andReturn().getResponse().getContentAsString();System.out.println(file);}

測試用例執行完之后輸出文件絕對路徑:

{"path":"G:\\mysecurity\\mysecurity-demo\\src\\main\\java\\com\\nxz\\controller\\1556463660034.txt"}

?

?

下載:

@GetMapping("/{id}")public void downLoad(@PathVariable String id,HttpServletRequest request,HttpServletResponse response) throws IOException {String holder = "G:\\0001-myproject\\mysecurity\\mysecurity-demo\\src\\main\\java\\com\\nxz\\controller";try (InputStream inputStream = new FileInputStream(new File(holder, id + ".txt"));OutputStream outputStream = response.getOutputStream();) {response.setContentType("application/x-download");response.addHeader("Content-Disposition", "attachment;filename=test.txt");//重新定義下載后名稱//將文件輸入流復制到輸出劉超過年 commons-io依賴IOUtils.copy(inputStream, outputStream);outputStream.flush();}}

訪問:http://localhost:8080/user/1

?

posted @ 2019-04-29 22:28 巡山小妖N 閱讀(...) 評論(...) 編輯 收藏

總結

以上是生活随笔為你收集整理的restful api上传文件(基础)-springboot的全部內容,希望文章能夠幫你解決所遇到的問題。

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