一.上传
1.前端JSP
<form action="xxx" id="mainForm" name="mainForm" method="post" enctype="multipart/form-data" novalidate="novalidate">
<td height="28" align="right" width="6%"><span style="color:red">*</span>附 件:</td>
<input type="hidden" id="theFilePath" name="theFilePath" value="" />
<input id="photo1" name="photo1" type="file" class="textfield" datatype="systemValidformImageFileCheck" style="width: 100%; margin-top: 10px;" value="选择图片" size="12"/>
</form>
2.后台代码
@RequestMapping("xxxx.do")
public void updateNews(HttpServletRequest request,HttpServletResponse response,@RequestParam("photo1") MultipartFile photo1 ) throws Exception {
response.setContentType("text/html;charset=utf-8");
//判断是不是为空
if(!photo1.isEmpty()){
//获取名字
String test = photo1.getOriginalFilename();
//获取后缀
String res = test.substring(test.lastIndexOf(".")).toLowerCase();
//拼接字符串
String fileName = new Date().getTime() + res;
//获取文件路径
String realpath = request.getSession().getServletContext().getRealPath("/upload/NewP");
//创建 File
File file = new File(realpath, fileName);
//上传Tomcat
photo1.transferTo(file);
}
}
二 下载
public HttpServletResponse download(String path, HttpServletResponse response) {
try {
// path是指欲下载的文件的路径。
File file = new File(path);
// 取得文件名。
String filename = file.getName();
// 取得文件的后缀名。
String ext = filename.substring(filename.lastIndexOf(".") + 1).toUpperCase();
// 以流的形式下载文件。
InputStream fis = new BufferedInputStream(new FileInputStream(path));
byte[] buffer = new byte[fis.available()];
fis.read(buffer);
fis.close();
// 清空response
response.reset();
// 设置response的Header
response.addHeader("Content-Disposition", "attachment;filename=" + new String(filename.getBytes()));
response.addHeader("Content-Length", "" + file.length());
OutputStream toClient = new BufferedOutputStream(response.getOutputStream());
response.setContentType("application/octet-stream");
toClient.write(buffer);
toClient.flush();
toClient.close();
} catch (IOException ex) {
ex.printStackTrace();
}
return response;
}