package com.oa.org.util;
import java.io.BufferedInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.io.UnsupportedEncodingException;
import java.util.HashMap;
import java.util.Map;
import javax.servlet.http.HttpServletResponse;
import org.mortbay.log.Log;
import org.springframework.web.multipart.MultipartFile;
public class FileUtil {
public static Map upload(MultipartFile file, String filePath) {
Map<String, String> resultMap = new HashMap<String, String>();
if (file.isEmpty()) {
resultMap.put("CODE", "500");
resultMap.put("MESSAGE", "文件不能为空");
return resultMap;
}
// 获取文件名
String fileName = file.getOriginalFilename();
String suffixName = fileName.substring(fileName.lastIndexOf("."));
File dest = new File(filePath + fileName);
if (!dest.getParentFile().exists()) {
dest.getParentFile().mkdirs();
}
try {
file.transferTo(dest);
resultMap.put("CODE", "200");
resultMap.put("MESSAGE", "文件上传成功");
return resultMap;
} catch (IllegalStateException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
resultMap.put("CODE", "500");
resultMap.put("MESSAGE", "文件上传失败");
return resultMap;
}
public static void downloadFile(String fileName, String filePath, HttpServletResponse response) {
BufferedInputStream bis = null;
OutputStream os = null;
try {
//转换编码防止文件名出现乱码
String filesName = new String(fileName.getBytes("gb2312"), "ISO8859-1");
response.setHeader("content-type", "application/octet-stream");
response.setContentType("application/octet-stream");
response.setHeader("Content-Disposition", "attachment;filename=" + filesName);
response.setContentType("application/x-msdownload");
response.setContentType("application/vnd.ms-pdf;charset=utf-8");
response.setCharacterEncoding("utf-8");
byte[] buff = new byte[1024];
File f=new File(filePath + fileName);
if(!f.exists()){
Log.info("下载文件错误,文件不存在");
return;
}
os = response.getOutputStream();
bis = new BufferedInputStream(new FileInputStream(f));
int i = bis.read(buff);
while (i != -1) {
os.write(buff, 0, buff.length);
os.flush();
i = bis.read(buff);
}
} catch (IOException e) {
e.printStackTrace();
} finally {
if (bis != null) {
try {
bis.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}
springboot上传下载
最新推荐文章于 2024-03-02 21:01:09 发布