org.springframework.boot spring-boot-starter-web org.springframework.boot spring-boot-starter-thymeleaf
Title 文件上傳[[${filename}]]
文件下載
@Configuration
public class MyWebAppConfigurer implements WebMvcConfigurer {@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
// 用于前端匹配路徑 /AAA-uploaded/** 的時候 可以直接定位到D://AAA-uploaded/圖片存儲的地址
// 用于前端頁面渲染圖片
registry.addResourceHandler("/AAA-uploaded/**").
addResourceLocations("file:/" + "D://AAA-uploaded/");
}
}
server:
port: 8080
my-config:
file-path: D:\
文件上傳功能MultipartFile接收前端傳來的文件
成都創新互聯主營前郭網站建設的網絡公司,主營網站建設方案,成都APP應用開發,前郭h5微信小程序開發搭建,前郭網站營銷推廣歡迎前郭等地區企業咨詢
@Value("${my-config.file-path}")
private String myFilePath;
@RequestMapping("upload")
public String upload(@RequestParam("file") MultipartFile file, Model model) {try {// 避免圖片名字重復 采用時間戳+圖片名
String fileName = System.currentTimeMillis() + file.getOriginalFilename();
// 獲取圖片存放路徑
String destFileName = myFilePath + "AAA-uploaded" + File.separator + fileName;
File destFile = new File(destFileName);
// 判斷上一級目錄是否存在 不存在則創建
if (!destFile.getParentFile().exists()) {destFile.getParentFile().mkdirs();
}
// 移動文件到指定目錄下
file.transferTo(destFile);
// 存放到頁面用于回顯測試
model.addAttribute("filename", "AAA-uploaded/" + fileName);
} catch (Exception e) {e.printStackTrace();
return "上傳失敗," + e.getMessage();
}
return "index";
}
文件下載功能ResponseEntity用于控制器方法的返回值類型,該控制器方法的返回值就是響應到瀏覽器的響應報文
@Value("${my-config.file-path}")
private String myFilePath;
@ResponseBody
@RequestMapping("/download")
public ResponseEntitytestResponseEntity(@RequestParam(value = "imageName", required = false) String filename) throws IOException {// 獲取圖片名稱返回給頁面用于下載
String name = filename.split("/")[1];
File newfile = new File("D:/AAA-uploaded" + File.separator + name);
if (!newfile.exists()) {throw new IOException(name + "文件不存在");
}
// 創建輸入流
InputStream is = new FileInputStream(newfile);
// 創建字節數組
byte[] bytes = new byte[is.available()];
// 將流讀到字節數組中
is.read(bytes);
// 創建HttpHeaders對象設置響應頭信息
MultiValueMapheaders = new HttpHeaders();
// 設置要下載方式以及下載文件的名字
headers.add("Content-Disposition", "attachment;filename="+ name);
// 設置響應狀態碼
HttpStatus statusCode = HttpStatus.OK;
// 創建ResponseEntity對象
ResponseEntityresponseEntity = new ResponseEntity<>(bytes, headers, statusCode);
// 關閉輸入流
is.close();
return responseEntity;
}
你是否還在尋找穩定的海外服務器提供商?創新互聯www.cdcxhl.cn海外機房具備T級流量清洗系統配攻擊溯源,準確流量調度確保服務器高可用性,企業級服務器適合批量采購,新人活動首月15元起,快前往官網查看詳情吧
分享文章:SpringBootJava實現文件上傳下載功能-創新互聯
當前鏈接:http://vcdvsql.cn/article44/hoghe.html
成都網站建設公司_創新互聯,為您提供云服務器、企業建站、網站導航、商城網站、微信公眾號、用戶體驗
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯