themyleaf 图片上传_javaEE --springboot #实现图片上传和回显 #单文件上传 #多文件上传 #ajax异步文件上传 (非常详细,从创建项目开始)...
實現(xiàn)文件上傳和回顯
1、新建一個SpringBoot項目,選擇 Spring Web 和 thymeleaf?依賴 。pow.xml文件下的依賴如下
2、根據(jù)下圖,創(chuàng)建如下文件
3、直接上代碼
配置文件 application.xml
server:
port: 8005
file:
upload:
path: F://upload/
relationImg: /images/
配置類 MyWenMvcConfigurer.java
/**資源映射路徑*/@Configurationpublic class MyWebMvcConfigurer implementsWebMvcConfigurer {/**保存的真實地址*/@Value("${file.upload.path}")
String sysPath;/**請求的相對地址*/@Value("${file.upload.relationImg}")
String relationImg;
@Overridepublic voidaddResourceHandlers(ResourceHandlerRegistry registry) {/**將相對地址映射到真實地址*/registry.addResourceHandler(relationImg+"**").addResourceLocations("file:/"+sysPath+relationImg);
}
}
服務(wù)層接口 UploadService.java
public interfaceUploadService {/**保存文件并返回文件的相對路徑*/
publicString uploadImg(MultipartFile file);
}
服務(wù)層實現(xiàn)類 UploadServiceImpl.java
@Servicepublic class UploadServiceImpl implementsUploadService {
@Value("${file.upload.path}")
String sysPath;
@Value("${file.upload.relationImg}")
String relationImg;
@OverridepublicString uploadImg(MultipartFile file) {//uuid生成的唯一前綴 + 上傳文件名 構(gòu)成唯一的新文件名
String fileName= UUID.randomUUID()+"_"+file.getOriginalFilename();//文件保存路徑
String path=sysPath+relationImg;//新建文件filepath
File filepath=newFile(path,fileName);//判斷路徑是否存在,如果不存在就創(chuàng)建一個
if(!filepath.getParentFile().exists()){
filepath.getParentFile().mkdirs();
}try{//將上傳的文件file寫入文件filepath
file.transferTo(new File(path+File.separator+fileName));
}catch(IOException e){
e.printStackTrace();
}//將請求文件的相對路徑返回
return relationImg+fileName;
}
}
控制類 UploadController.java
@Controllerpublic classUploadController {
@Autowired
UploadService uploadService;
@GetMapping("/uploadImg")publicString getuploadImg(){return "/upload/uploadImg";
}
@PostMapping("/uploadImg")public String uploadImg(@RequestParam("file")MultipartFile file, Model model){
String imgUrl=uploadService.uploadImg(file);
model.addAttribute("imgUrl",imgUrl);return "/upload/uploadImg";
}
}
視圖層 uploadImg.html
圖片上傳并回顯圖片地址:[[${imgUrl}]]效果圖:
真實保存路徑:F:\upload\images
注意下面兩張圖的名字,第一張多了的前綴就是?UUID.randomUUID() 生成的,為了保證文件名的唯一性
單文件上傳
控制層 FileController.java
@Controllerpublic classFileController {//單文件上傳頁面跳轉(zhuǎn)
@GetMapping("/singleUpload")publicString singleUpload(){return "singleUpload";
}//單文件上傳管理
@PostMapping("/singleUploadFile")public String singleUploadFile(HttpServletRequest httpServletRequest, MultipartFile file, Model model) throwsIOException {//獲取文件名以及后綴名
String fileName=file.getOriginalFilename();//重新生成文件名(根據(jù)具體情況生成對應(yīng)文件名)
fileName= UUID.randomUUID()+"_"+fileName;//指定上傳文件本地存儲目錄,不存在需要提前創(chuàng)建
String dirPath="F:/file/";
File filePath=newFile(dirPath);//指定上傳文件本地存儲目錄,不存在需要提前創(chuàng)建
if(!filePath.exists()){
filePath.mkdirs();
}try{//將文件寫入磁盤
file.transferTo(newFile(dirPath,fileName));
model.addAttribute("uploadStatus","上傳成功");
}catch(Exception e){
e.printStackTrace();
model.addAttribute("uploadStatus","上傳失敗:"+e.getMessage());
}//將帶上傳狀態(tài)信息回調(diào)到文件上傳頁面
return "singleUpload";
}
}
singleUpload.html
單文件上傳上傳成功!
總結(jié)
以上是生活随笔為你收集整理的themyleaf 图片上传_javaEE --springboot #实现图片上传和回显 #单文件上传 #多文件上传 #ajax异步文件上传 (非常详细,从创建项目开始)...的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: “雨神”萧敬腾称已常居成都 一年只有20
- 下一篇: 她不醉没机会?门店广告文案被指低俗 71