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