工具类:
public class FileUploadUtil {
/**
* 文件上传功能
* @param file
* @param path文件上传的路径
* @return
* @throws IOException
* @throws IllegalStateException
*/
public static String fileUpload(MultipartFile file,String path) throws IllegalStateException, IOException {
//原文件名称orName
String orName = file.getOriginalFilename();
//生成一个新的文件名fileName
String fileName = UUID.randomUUID().toString() + "."
+ FilenameUtils.getExtension(orName);
//FilenameUtils.getExtension(orName);得到文件的扩展名
File dir = new File(path,fileName);
if(!dir.exists()){
dir.mkdirs();
}
//MultipartFile自带的解析方法
file.transferTo(dir);
return fileName;
}
/**
* 文件下载功能
* @param request
* @param response
* @param name
* @throws Exception
*/
public static void fileDownload(HttpServletRequest request,HttpServletResponse response,String fileName) throws Exception{
//需要下载的文件在controller层写
// String fileName = request.getSession().getServletContext().getRealPath("/sql")+"/"+name;
//获取输入流
InputStream bis = new BufferedInputStream(new FileInputStream(new File(fileName)));
//假如以中文名下载的话,转码,免得文件名中文乱码
String filename = URLEncoder.encode(fileName,"UTF-8");
//设置文件下载头
response.addHeader("Content-Disposition", "attachment;filename=" + filename);
//1.设置文件ContentType类型,这样设置,会自动判断下载文件类型
response.setContentType("multipart/form-data");
BufferedOutputStream out = new BufferedOutputStream(response.getOutputStream());
int len = 0;
while((len = bis.read()) != -1){
out.write(len);
out.flush();
}
out.close();
}
/**
* 删除文件
* @param fileName
* @return
*/
public static String deleteFile(HttpServletRequest request,String fileName){
String filename=null;
String sufName=fileName.substring(fileName.lastIndexOf("."));
if(sufName.endsWith(".png")||sufName.endsWith(".jpeg")||sufName.endsWith(".jpg")||sufName.endsWith(".gif")){
filename=request.getSession().getServletContext().getRealPath("/ueditor/jsp/upload/image/")+fileName;
}else if(sufName.endsWith(".mp4")){
filename=request.getSession().getServletContext().getRealPath("/ueditor/jsp/upload/video/")+fileName;
}else if(sufName.endsWith(".doc")||sufName.endsWith(".docx")
||sufName.endsWith(".xls")||sufName.endsWith(".xlsx")
||sufName.endsWith(".pdf")||sufName.endsWith(".txt")){
filename=request.getSession().getServletContext().getRealPath("/ueditor/jsp/upload/file/")+fileName;
}else{
return "删除文件不存在";
}
File file=new File(filename);
if(!file.exists()){
return "删除文件失败"+fileName+"不存在";
}else{
if(file.isFile()){
boolean bl=file.delete();
if(bl){
return "文件删除成功";
}else{
return "文件删除失败";
}
}else{
return "删除文件失败"+fileName+"不存在";
}
}
}
}
在controller层,调用相应的方法,并调传入相应的参数。