javascript
java jsp filename filepath 图片上传_SpringMVC实现文件上传与下载
單文件上傳:
pom.xml:
commons-io
commons-io
1.3.2
commons-fileupload
commons-fileupload
1.2.1
jstl
jstl
1.2
taglibs
standard
1.1.2
upload.jsp:
1.input的type設置為file。
2.form表單的method設置為post。(get請求只會將文件名傳給后臺)
3.form表單的enctype設置為multipart/form-data,以二進制的形式傳輸數據。
" method="post" enctype="multipart/form-data">
上傳的圖片
FileController.java:
@RequestMapping(value="upload", method = RequestMethod.POST)
public String upload(@RequestParam(value="img")MultipartFile img, HttpServletRequest request)
throws Exception {
//getSize()方法獲取文件的大小來判斷是否有上傳文件
if (img.getSize() > 0) {
//獲取保存上傳文件的file文件夾絕對路徑
String path = request.getSession().getServletContext().getRealPath("file");
//獲取上傳文件名
String fileName = img.getOriginalFilename();
File file = new File(path, fileName);
img.transferTo(file);
//保存上傳之后的文件路徑
request.setAttribute("filePath", "file/"+fileName);
System.out.println("file/"+fileName);
return "upload";
}
return "error";
}
springMVC.xml:
注意:這里需要在webapp文件下手動創建一個file文件夾。
多文件上傳:
uploads.jsp:
file1:
file2:
file3:
上傳的圖片
FileController.java:
@RequestMapping(value="/uploads", method = RequestMethod.POST)
public String uploads(@RequestParam MultipartFile[] imgs, HttpServletRequest request)throws Exception {
//創建集合,保存上傳后的文件路徑
ListfilePaths = new ArrayList();
for (MultipartFile img : imgs) {
if (img.getSize() > 0) {
String path = request.getSession().getServletContext().getRealPath("file");
String fileName = img.getOriginalFilename();
File file = new File(path, fileName);
filePaths.add("file/"+fileName);
img.transferTo(file);
}
}
request.setAttribute("filePaths", filePaths);
return "uploads";
}
文件下載:
download.jsp:
Insert title here
下載圖片
FileController.java:
@RequestMapping("/download")
public void downloadFile(String fileName,HttpServletRequest request,
HttpServletResponse response){
if(fileName!=null){
//獲取file絕對路徑
String realPath = request.getServletContext().getRealPath("file/");
File file = new File(realPath,fileName);
OutputStream out = null;
if(file.exists()){
//設置下載完畢不打開文件
response.setContentType("application/force-download");
//設置文件名
response.setHeader("Content-Disposition", "attachment;filename="+fileName);
try {
out = response.getOutputStream();
out.write(FileUtils.readFileToByteArray(file));
out.flush();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
if(out != null){
try {
out.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
}
}
總結
以上是生活随笔為你收集整理的java jsp filename filepath 图片上传_SpringMVC实现文件上传与下载的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java观察者模式在spring中的应用
- 下一篇: java域的控制修饰符可分为_Java中