springmvc模式的上傳和下載實現解析
阿新 • • 發佈:2020-01-07
這篇文章主要介紹了springmvc模式下的上傳和下載實現解析,文中通過示例程式碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
此處上傳的功能依舊是採用表格上傳。檔案格式依舊是
<form action="${pageContext.request.contextPath}/upload" method="post" enctype="multipart/form-data">
後臺則是
@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));//位置儲存在硬碟上 // file.transferTo(new File(request.getServletContext().getRealPath("/")+"static/userImages/"+file)); // 儲存在專案裡的目錄下 request.setAttribute("result","上傳成功"); return "/result.jsp"; }else{ request.setAttribute("result","上傳失敗"); return "/result.jsp"; } }
相比之前的傳統式上傳,springmvc模式下封裝了許多繁瑣的過程,通過transferTo即可實現一些相應的操作
而下載也是相應的簡化了許多
@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(); }
一般框架會省去許多重複性的工作,但底層的基本原理還是要清楚過程
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。