springmvc模式的上傳和下載實(shí)現(xiàn)解析
這篇文章主要介紹了springmvc模式下的上傳和下載實(shí)現(xiàn)解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
此處上傳的功能依舊是采用表格上傳。文件格式依舊是
<form action="${pageContext.request.contextPath}/upload" method="post" enctype="multipart/form-data">
后臺(tái)則是
@RequestMapping("/upload")
public String upload(MultipartFile file,String userName,HttpServletRequest request) throws IOException {
String filename = file.getOriginalFilename();
String suffix = filename.substring(filename.lastIndexOf("."));
if(suffix.equalsIgnoreCase(".jpg")){
String uuid = UUID.randomUUID().toString();
//FileUtils.copyInputStreamToFile(file.getInputStream(),new File("E://"+uuid+suffix));
file.transferTo(new File("D://"+System.currentTimeMillis()+suffix));//位置存儲(chǔ)在硬盤上
// file.transferTo(new File(request.getServletContext().getRealPath("/")+"static/userImages/"+file));
// 存儲(chǔ)在項(xiàng)目里的目錄下
request.setAttribute("result","上傳成功");
return "/result.jsp";
}else{
request.setAttribute("result","上傳失敗");
return "/result.jsp";
}
}
相比之前的傳統(tǒng)式上傳,springmvc模式下封裝了許多繁瑣的過(guò)程,通過(guò)transferTo即可實(shí)現(xiàn)一些相應(yīng)的操作
而下載也是相應(yīng)的簡(jiǎn)化了許多
@RequestMapping("/download")
public void download(String filename, HttpServletResponse response, HttpServletRequest request) throws IOException {
response.setHeader("content-disposition","attachment;filename="+filename);
ServletOutputStream outputStream = response.getOutputStream();
String path = request.getServletContext().getRealPath("images");
File file = new File(path,filename);
byte[] bytes = FileUtils.readFileToByteArray(file);
outputStream.write(bytes);
outputStream.close();
}
一般框架會(huì)省去許多重復(fù)性的工作,但底層的基本原理還是要清楚過(guò)程
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Java使用Tessdata做OCR圖片文字識(shí)別的詳細(xì)思路
這篇文章主要介紹了Java使用Tessdata做OCR圖片文字識(shí)別的詳細(xì)思路,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-07-07
Java實(shí)現(xiàn)讀取和寫入properties文件
這篇文章主要介紹了Java實(shí)現(xiàn)讀取和寫入properties文件方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-08-08
SpringBoot中調(diào)用通用URL的實(shí)現(xiàn)
在 Spring Boot 應(yīng)用程序中,有時(shí)候我們需要調(diào)用一些通用的 URL 接口,本文主要介紹了SpringBoot中調(diào)用通用URL的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-07-07
java快速排序和選擇排序?qū)崿F(xiàn)實(shí)例解析
這篇文章主要為大家介紹了java快速排序和選擇排序?qū)崿F(xiàn)實(shí)例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-11-11
FastJson實(shí)現(xiàn)駝峰下劃線相互轉(zhuǎn)換方法詳解
這篇文章主要介紹了使用FastJson進(jìn)行駝峰下劃線相互轉(zhuǎn)換寫法及誤區(qū),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)吧2023-01-01

