提示:文章如有错误的地方请指出,以免误人子弟!
提示:以下是本篇文章正文内容,下面案例可供参考
直接拿去用就好了
单个文件上传
/**
* description: 文件上传
*
* @param file 前端传来的文件
* @param filePath 保存本地的路径
* @return java.lang.String
* @author Tigger
*/
public String upLoad(MultipartFile file, String filePath) {
try
{
if(file.isEmpty())
{
return "文件为空";
}
// 获取文件名
String fileName = file.getOriginalFilename();
// 获取文件的后缀名
// assert fileName != null;
// String suffixName = fileName.substring(fileName.lastIndexOf("."));
String path = filePath + fileName;
File dest = new File(path);
// 检查是否存在目录
if(!dest.getParentFile().exists())
{
// 创建新的文件夹
dest.getParentFile().mkdirs();
}
// 写入文件
file.transferTo(dest);
return "上传成功";
} catch (IllegalStateException | IOException e) {
e.printStackTrace();
return "上传失败";
}
}
单个文件下载
/**
* description: 文件下载
*
* @param filePath 下载的文件路径
* @param fileName 文件名
* @param response response
* @return void
* @author Tigger
*/
public void download(String filePath, String fileName, HttpServletResponse response) {
// 读到流中
// 文件的存放路径
InputStream inStream = null;
try {
inStream = new FileInputStream(filePath);
} catch (FileNotFoundException e) {
e.printStackTrace();
}
// 设置输出的格式
response.reset();
response.setContentType("bin");
// response.setContentType("application/force-download");//设置强制下载不打开
response.addHeader("Content-Disposition", "attachment; filename=\"" + fileName + "\"");
// 循环取出流中的数据
byte[] b = new byte[1024];
int len;
try {
if (inStream != null) {
while ((len = inStream.read(b)) > 0) {
response.getOutputStream().write(b, 0, len);
}
}
} catch (IOException e) {
e.printStackTrace();
} finally {
if (inStream != null) {
try {
inStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
希望对你有所帮助!