MultipartFile.transferTo(dest) 报找不到文件
今天使用transferTo这个方法进行上传文件的使用发现了一些路径的一些问题,查找了一下记录问题所在
前端上传网页,使用的是单文件上传的方式
<!DOCTYPE html>
<html lang="en">
<meta charset="UTF-8">
<title>Title</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
</head>
<form enctype="multipart/form-data" method="post" action="/upload">
文件:<input type="file" name="head_img">
姓名:<input type="text" name="name">
<input type="submit" value="上传">
</form>
</body>
</html>
@Controller
@RequestMapping("/file")
public class UploadFileController {undefined
@Value("${file.upload.path}")
private String path = "upload/";
@RequestMapping(value = "fileUpload", method = RequestMethod.POST)
@ResponseBody
public String fileUpload(@RequestParam("file") MultipartFile file) {undefined
if (file.isEmpty()) {undefined
return "false";
String fileName = file.getOriginalFilename();
File dest = new File(path + "/" + fileName);
if (!dest.getParentFile().exists()) {
dest.getParentFile().mkdirs();
try {undefined
file.transferTo(dest); // 保存文件
return "true";
} catch (Exception e) {undefined
e.printStackTrace();
return "false";
这个确实存在一些问题
路径是不对的
dest 是相对路径,指向 upload/doc20170816162034_001.jpg
file.transferTo 方法调用时,判断如果是相对路径,则使用temp目录,为父目录
因此,实际保存位置为 C:\Users\xxxx\AppData\Local\Temp\tomcat.372873030384525225.8080\work\Tomcat\localhost\ROOT\upload\doc20170816162034_001.jpg
所以改为:
@Controller
@RequestMapping("/file")
public class UploadFileController {undefined
@Value("${file.upload.path}")
private String path = "upload/";
@RequestMapping(value = "fileUpload", method = RequestMethod.POST)
@ResponseBody
public String fileUpload(@RequestParam("file") MultipartFile file) {undefined
if (file.isEmpty()) {undefined
return "false";
String fileName = file.getOriginalFilename();
File dest = new File(new File(path).getAbsolutePath()+ "/" + fileName);
if (!dest.getParentFile().exists()) {
dest.getParentFile().mkdirs();
try {undefined
file.transferTo(dest); // 保存文件
return "true";
} catch (Exception e) {undefined
e.printStackTrace();
return "false";
MultipartFile.transferTo(dest) 报找不到文件今天使用transferTo这个方法进行上传文件的使用发现了一些路径的一些问题,查找了一下记录问题所在前端上传网页,使用的是单文件上传的方式<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Title</title> <meta http-
目录1.
文件上传的原理2.
文件上传到本地服务器2.1 添加上传的依赖2.2 创建一个页面2.3 在springmvc中配置
文件上传解析器2.4 创建upload01接口
方法3.elementui+vue+axios完成
文件上传3.1 页面的布局引用elementui3.2 后台的接口
2.2 创建一个页面
method: 提交方式
文件上传必须为post提交。
enctype:默认application/x-www-form-urlencoded 表示提交表单数据
文件上传是项目开发中最常见的功能之一 ,springMVC 可以很好的支持文件上传,但是SpringMVC上下文中默认没有装配MultipartResolver,因此默认情况下其不能处理文件上传工作。如果想使用Spring的文件上传功能,则需要在上下文中配置MultipartResolver。
前端表单要求:为了能上传文件,必须将表单的method设置为POST,并将enctype设置为multipart/form-data。只有在这样的情况下,浏览器才会把用户选择的文件以二进制数据发送给服务器;
Unable to negotiate with 147.98.49.4 port 22: no matching host key type found. Their offer: ssh-rsa
15320