當前位置:
首頁 >
前端技术
> javascript
>内容正文
javascript
SpringBoot上传文件并储存到本地(记录)
生活随笔
收集整理的這篇文章主要介紹了
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上传文件并储存到本地(记录)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Unity3D 下载导入DoTween插
- 下一篇: 科普 | 处理器RISC和CISC架构分