vue+springboot實現圖片的上傳及回顯失敗問題的解決
vue+springboot實現圖片的上傳及回顯失敗問題的解決
<div class="upload">
<input type="file" id="saveImage" accept="image/png,image/gif,image/jpeg" ref="new_image">
<input type="text" hidden id="hiddenContent" v-model="picAddress">
<input type="button" value="上傳頭像" @click="submitPhoto()"/>
<div class="photo">
<img :src="url" class="img" >
</div>
</div>
submitPhoto():
submitPhoto() {
let self = this;
if (self.$refs.new_image.files.length !== 0) {
let formData = new FormData();
formData.append('image_data', self.$refs.new_image.files[0]);
this.$axios.post('api/user/uploadPhoto', formData)
.then(res => {
let imgUrl = res.data;
this.uploadPhotot(imgUrl);
})
}
},
這裡的imgUrl就是圖片的路徑,可以在瀏覽器中直接訪問得到的。
uploadPhoto就是把圖片路徑及其他資料存到資料庫的方法。
springboot中這樣寫:
@PostMapping("/uploadPhoto")
@ApiOperation(value = "上傳頭像", notes = "上傳頭像")
public String uploadPhoto(@RequestParam(name = "image_data", required = false) MultipartFile file) throws IOException {
// 檔案上傳
String imageName = file.getOriginalFilename();
String newCompanyImagePath = "";
if (!file.isEmpty()) {
try {
//D:\\Program Files (x86)\\workspace-spring-tool-suite-4-4.6.2.RELEASE\\csi\\src\\main\\resources\\static\\img\\
newCompanyImagePath = "D:\\Program Files (x86)\\workspace-spring-tool-suite-4-4.6.2.RELEASE\\csi\\src\\main\\resources\\static\\img\\"
+ imageName;
File newFile = new File(newCompanyImagePath);
if (!newFile.exists()) {
newFile.createNewFile();
}
BufferedOutputStream out = new BufferedOutputStream(new FileOutputStream(newFile));
out.write(file.getBytes());
out.flush();
out.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
return "圖片上傳失敗!";
} catch (IOException e) {
e.printStackTrace();
return "圖片上傳失敗!";
}
}
String imagePath = "http://localhost:8888/static/img/" + imageName;
return imagePath;
}
上面的newCompanyImagePath 就是該專案中存放圖片的資料夾的絕對路徑
專案結構如下:
還有一個問題就是新上傳一張圖片之後,回顯會失敗,要重新整理後端專案img資料夾,重新執行專案才能顯示出來,怎麼解決這個問題呢?
這裡我們可以通過虛擬路徑對映的方法來解決。
在後端專案中新增一個類:
//新增加一個類用來新增虛擬路徑對映
@Configuration
public class MyPicConfig implements WebMvcConfigurer{
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/static/img/**")
.addResourceLocations("file:D:/Program Files (x86)/workspace-spring-tool-suite-4-4.6.2.RELEASE/csi/src/main/resources/static/img/");
}
}
相關文章
- jquery圖片直接貼上上傳的失敗嘗試jQuery
- pbootcms後臺圖片上傳提示:上傳失敗:儲存目錄建立失敗!boot
- PbootCMS後臺圖片上傳提示:”上傳失敗:儲存目錄建立失敗!“boot
- PbootCMS網站後臺圖片上傳提示:”上傳失敗:儲存目錄建立失敗!“boot網站
- PbootCMS網站後臺圖片上傳提示:“上傳失敗:儲存目錄建立失敗!”boot網站
- [文件教程]解決sae下文件縮圖上傳問題及外掛上傳問題
- PbootCMS上傳圖片變模糊、上傳圖片尺寸受限的解決方案boot
- django 實現圖片上傳和顯示操作Django
- git clone失敗問題解決Git
- wangEditor上傳圖片問題
- 上傳檔案(圖片)失敗 error=6 找不到臨時檔案解決辦法Error
- Win10系統下ie瀏覽器上傳圖片失敗怎麼解決Win10瀏覽器
- canvas簽名圖片上傳及入庫問題Canvas
- IOS下圖片不能顯示問題的解決辦法iOS
- [文件教程]解決sae下編輯器圖片上傳問題
- [提問交流]onethink普通使用者文章模組上傳圖片失敗
- 合約 USDT 轉賬失敗的問題解決
- mongodb啟動失敗問題解決MongoDB
- hbase啟動失敗問題解決
- 有關laravel 上傳圖片訪問404的問題Laravel
- 成功解決github無法顯示圖片問題Github
- Django實現圖片上傳並前端頁面顯示Django前端
- 解決Hexo關於圖片的問題Hexo
- 解決Nessus外掛更新失敗問題
- vue 實現貼上上傳圖片Vue
- 跨域CORS圖片上傳問題跨域CORS
- laravel上傳圖片路徑問題Laravel
- 圖片載入失敗解決方案 以及canvas即時生成提示圖片Canvas
- element-ui+Vue實現的圖片上傳UIVue
- 圖片上傳及圖片處理
- 前端手勢控制圖片外掛書寫四(圖片上傳及Ios圖片方向問題)前端iOS
- formData原生實現圖片上傳ORM
- flutter packages 開發實戰——釋出失敗問題解決FlutterPackage
- 解決jenkins 傳送郵件圖片亂碼問題Jenkins
- Java實現圖片上傳到伺服器,並把上傳的圖片讀取出來Java伺服器
- npm install realm --save失敗的問題與解決辦法NPM
- 短視訊系統,解決圖片上傳時底部或頂部留白的問題
- 手機上傳的圖片翻轉90度問題