直接上代码
该配置的还需要spring容器配置好.例如上传的组件..
下载
public void downLoadFile(HttpServletResponse response, File file) {
if (file == null || !file.exists()) {
return;
}
OutputStream out = null;
try {
response.reset();
response.setContentType("application/octet-stream; charset=utf-8");
response.setHeader("Content-Disposition", "attachment; filename=" + file.getName());
out = response.getOutputStream();
out.write(FileUtils.readFileToByteArray(file));
out.flush();
} catch (IOException e) {
e.printStackTrace();
} finally {
if (out != null) {
try {
out.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
下载的另一种方法
@RequestMapping("/download")
public ResponseEntity<byte[]> download(Integer bid, HttpServletRequest httpServletRequest,
HttpServletResponse response) throws IOException {
response.setContentType("text/html;charset=UTF-8");
if(bid==null){
response.getWriter().print("下载的文件不存在..");
}
Download download= downloadService.selectByBid(bid);
if(download==null){
response.getWriter().print("下载的文件不存在..");
return null;
}
File file=new File(httpServletRequest.getRealPath("/")+download.getFileurl());
if(file.exists()==false){
response.getWriter().print("下载的文件不存在..");
}
HttpHeaders headers = new HttpHeaders();
String fileName=new String((download.getDownbook()+".pdf").getBytes("UTF-8"),"iso-8859-1");//为了解决中文名称乱码问题
response.setContentType("multipart/form-data");
response.setHeader("Content-Disposition", "attachment;fileName="
+ fileName);
// headers.setContentDispositionFormData("attachment", fileName);
headers.setContentType(MediaType.APPLICATION_OCTET_STREAM);
return new ResponseEntity<byte[]>(FileUtils.readFileToByteArray(file),
headers, HttpStatus.CREATED);
}
上传(多文件)
@RequestMapping("/upload.do")
public String upload(HttpServletRequest request,
HttpServletResponse response) throws IOException {
// 这里我用到了jar包
CommonsMultipartResolver multipartResolver = new CommonsMultipartResolver(
request.getSession().getServletContext());
if (multipartResolver.isMultipart(request)) {
MultipartHttpServletRequest multiRequest = (MultipartHttpServletRequest) request;
Iterator<String> iter = multiRequest.getFileNames();
while (iter.hasNext()) {
MultipartFile file = multiRequest.getFile((String) iter.next());
if (file != null) {
String fileName = file.getOriginalFilename();
String path1 = Thread.currentThread()
.getContextClassLoader().getResource("").getPath()
+ "download" + File.separator;
// 下面的加的日期是为了防止上传的名字一样
String path = path1
+ new SimpleDateFormat("yyyyMMddHHmmss")
.format(new Date()) + fileName;
File localFile = new File(path);
file.transferTo(localFile);
}
}
}
return "uploadSuccess";
}