1. 程式人生 > 其它 >springboot中關於檔案上傳、下載和預覽的問題

springboot中關於檔案上傳、下載和預覽的問題

1.檔案上傳

在springboot中,檔案上傳可以分為兩種方式:一種是直接解析為base64,存放到資料庫中;另一種是直接拷貝到伺服器的磁碟目錄

base64存放資料庫

這種方式相對來說,開發比較簡單,原理:直接解析上傳的檔案為base64,儲存資料庫即可。注意的是,這種方法儲存時,base64無法儲存檔案的格式,在進行回顯時,如果需要根據檔案格式選擇不同的控制元件回顯,會存在問題。所以,在以base64方式存入資料時,需要在資料庫自定義檔案格式的欄位來存放,便於檔案回顯使用

 

Transto 方式直接複製到伺服器磁碟

這種方式在效能上要比資料庫的更加優秀。因為資料庫儲存的檔案過大和過多時,資料庫查詢和讀取速度會跟不上。不多說,上程式碼

1.需要編寫一個配置類,來進行磁碟和java程式的對映

public class CorsConfig implements WebMvcConfigurer {

//圖片儲存路徑
public static final String PIC_PATH = "C:/profile/";
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
/** 圖片傳路徑 */
registry.addResourceHandler("/file/**").addResourceLocations("file:" + PIC_PATH);
}
}

當然,這裡的pic_path 也可以放到配置檔案中
開始上傳:
File dest=new File(filePath+newfileName);  //定義一個新的檔案
file.transferTo(dest);  //上傳的檔案複製到磁碟檔案
這樣就完成了上傳

2.讀取和訪問檔案時:直接呼叫即可:如:http://localhost/api/file/a.png