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

歡迎訪問 生活随笔!

生活随笔

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

javascript

SpringBoot上传文件并储存到本地(记录)

發布時間:2023/12/8 javascript 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 SpringBoot上传文件并储存到本地(记录) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

主要是通過【MultipartFile】作為參數類型來實現文件上傳的。

1、相關controller代碼如下:

@RequestMapping(value = "/upload", method = RequestMethod.POST) public String upload(@RequestParam("file")MultipartFile file) {if (Objects.isNull(file) || file.isEmpty()) {//判斷非空return "文件為空,請重新上傳";}try {byte[] bytes = file.getBytes();//要存入本地的地址放到path里面Path path = Paths.get( FileUtils.UPLOAD_FOLDER + "/");//如果沒有files文件夾,則創建if (!Files.isWritable(path)) {Files.createDirectories(path);}String extension = FileUtils.getFileExtension(file); //獲取文件后綴FileUtils.getFileByBytes(bytes, FileUtils.UPLOAD_FOLDER, "上傳文件" + extension);return "上傳成功";} catch (Exception e) {e.printStackTrace();}return "上傳失敗"; }

2、FileUtils.java的文件代碼如下:

public class FileUtils {//這是本地存入的格式,上傳到服務器的話,格式類似于,"/root/images/pc/"public static String UPLOAD_FOLDER = "D:/images/pc/";/*** 將文件轉換成Byte數組** @param pathStr* @return*/public static byte[] getBytesByFile(String pathStr) {File file = new File(pathStr);try {FileInputStream fis = new FileInputStream(file);ByteArrayOutputStream bos = new ByteArrayOutputStream(1024);byte[] b = new byte[1024];int n;while ((n = fis.read(b)) != -1) {bos.write(b, 0, n);}fis.close();byte[] data = bos.toByteArray();bos.close();return data;} catch (Exception e) {e.printStackTrace();}return null;}/*** 將Byte數組轉換成文件** @param bytes* @param filePath* @param fileName*/public static void getFileByBytes(byte[] bytes, String filePath, String fileName) {BufferedOutputStream bos = null;FileOutputStream fos = null;File file = null;try {File dir = new File(filePath);if (!dir.exists() && dir.isDirectory()) {// 判斷文件目錄是否存在dir.mkdirs();}file = new File(filePath + "\\" + fileName);fos = new FileOutputStream(file);bos = new BufferedOutputStream(fos);bos.write(bytes);} catch (Exception e) {e.printStackTrace();} finally {if (bos != null) {try {bos.close();} catch (IOException e) {e.printStackTrace();}}if (fos != null) {try {fos.close();} catch (IOException e) {e.printStackTrace();}}}}/*** 獲取文件后綴** @param File* @return*/public static String getFileExtension(MultipartFile File) {String originalFileName = File.getOriginalFilename();return originalFileName.substring(originalFileName.lastIndexOf("."));} }

3、特別注意:由于SpringBoot默認上傳文件大小為1M,所以在配置文件application.properties添加如下代碼:(我這邊改的是30M)

#設置文件上傳大小 spring.servlet.multipart.max-file-size=31457280 spring.servlet.multipart.max-request-size=31457280

代碼自行優化。

Android文件上傳請求可參考:https://blog.csdn.net/lpCrazyBoy/article/details/84344646

?

總結

以上是生活随笔為你收集整理的SpringBoot上传文件并储存到本地(记录)的全部內容,希望文章能夠幫你解決所遇到的問題。

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