SSM文件上传操作
准备知识:https://blog.csdn.net/qq_27770257/article/details/79438987
添加Apache的文件上传依赖
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>1.3.3</version>
</dependency>
这里面有3个方法:
String path = "E:\user\家庭教师.avi";
System.out.println("FilenameUtils.getName(path)") //家庭教师.avi
System.out.println("FilenameUtils.getBaseName(path)") // 家庭教师
System.out.println("FilenameUtils.getExtensionName(path)") //avi
后台代码
/**
* @param request
* @return
* @throws IllegalStateException
* @throws IOException
* @throws FileUploadException
* @Description TODO 上传文件,添加文件信息
*/
@RequestMapping("fileUpload")
public String springUpload( HttpServletRequest request, HttpServletResponse response) throws IllegalStateException, IOException, FileUploadException {
response.addHeader("Access-Control-Allow-Origin","*");
//拿到文件类型值,赋给文件信息字段中
String value = request.getParameter("value");
System.out.println(value);
//根据文件类型值获得文件类型名,用文件类型名来划分文件夹
String type = filePathMap.get(value);
System.out.println(fileTypeMap);
System.out.println(filePathMap);
//生成时间戳
String time = new SimpleDateFormat("YYYYMMddHHmmss").format(new Date());
CommonsMultipartResolver multipartResolver = new CommonsMultipartResolver(request.getSession().getServletContext());
if (multipartResolver.isMultipart(request)) {
//将request强转为MultipartHttpServletRequest
MultipartHttpServletRequest multiRequest = (MultipartHttpServletRequest) request;
//获取multiRequest 中所有的文件名
Iterator iter = multiRequest.getFileNames();
while (iter.hasNext()) {
MultipartFile file = multiRequest.getFile(iter.next().toString());
//获得完整路径
File path = new File(filePath + type + "/" + FilenameUtils.getBaseName(file.getOriginalFilename()) + time + "." + FilenameUtils.getExtension(file.getOriginalFilename()));
//判断路径是否存在,不存在则创建文件夹,否则不创建文件夹
if (!path.getParentFile().exists()) {
path.getParentFile().mkdirs();
}
//将文件信息写入数据库
webFileInfoDao.addFileInfo(new WebFileInfoEntity(null, file.getOriginalFilename(), value, path.getPath()));
//将文件上传到指定目录
file.transferTo(new File(path.getPath()));
}
}
return "...";
}