上传文件同用版
public void upload2(HttpServletRequest request , HttpServletResponse response){
//创建一个通用的多部分解析器
CommonsMultipartResolver multipartResolver = new CommonsMultipartResolver(request.getSession().getServletContext());
//判断 request 是否有文件上传,即多部分请求(即检查form中是否有enctype="multipart/form-data")
if(multipartResolver.isMultipart(request)){
//转换成多部分request
MultipartHttpServletRequest multiRequest = (MultipartHttpServletRequest) request;
//取得request中的所有input的name
Iterator<String> iter = multiRequest.getFileNames();
while(iter.hasNext()){
//取得一个input里面所有的上传文件
List<MultipartFile> list = multiRequest.getFiles(iter.next());
for(MultipartFile file : list){
if(file != null){
//取得当前上传文件的文件名称
String myFileName = file.getOriginalFilename();
//如果名称不为“”,说明该文件存在,否则说明该文件不存在
if(myFileName.trim() != null){
//重命名上传后的文件名
String saveName = UUID.randomUUID().toString() + myFileName.substring(myFileName.lastIndexOf("."));
//定义上传路径
File localFile = new File("C:\test\",saveName);
try {
//保存
file.transferTo(localFile);
} catch (IllegalStateException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}
}
}
文件下载通用版
// 文件路径
String filePath = basePath + fileName;
try {
File file = new File(filePath);
if (file.exists()) {
InputStream fis = new BufferedInputStream(new FileInputStream(
filePath));
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("iso8859-1"),"UTF-8"));
response.addHeader("Content-Length", "" + file.length());
OutputStream toClient = new BufferedOutputStream(
response.getOutputStream());
response.setContentType("application/octet-stream");
toClient.write(buffer);
toClient.flush();
toClient.close();
} else {
String errorMsg = "没有找到文件,路径:" + filePath;
}
} catch (Exception e) {
String errorMsg = "文件下载,出现异常:" + e.getMessage();
}