前端jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<!--jquery需要引入的文件-->
<script src="https://ajax.aspnetcdn.com/ajax/jQuery/jquery-3.2.1.js"></script>
<body>
<div>
<form id="uploadForm" enctype="multipart/form-data">
<input id="file" type="file" name="file"/>
<button id="upload" type="button" onclick="getUpload()">upload</button>
</form>
</div>
</body>
<script type="text/javascript">
function getUpload(){
$.ajax({
url: "http://localhost:8080/savefile",
type: 'POST',
dataType:"json",
cache: false,
data: new FormData($('#uploadForm')[0]),
processData: false,
contentType: false
}).done(function(res) {
alert(res.data);
document.getElementById("img").src = res.data;
}).fail(function(res) {
alert("fail");
});
}
</script>
</html>
后台1(没有使用绝对路径,即报错中有at org.apache.catalina.core.ApplicationPart.write(ApplicationPart.java:122))
@RestController
public class FileController {
@RequestMapping("/savefile")
public String saveArea(@RequestParam("file") MultipartFile file) {
String path = "D:\\safedistrict-img";
String url = "";//返回存储路径
if (file != null) {
String fileName = file.getOriginalFilename();
File targetFile = new File(fileName);
if (!targetFile.isDirectory()) {
targetFile.mkdirs();
}
try {
file.transferTo(targetFile);
} catch (IllegalStateException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
url = path + fileName;
}
return url;
}
}
@SpringBootApplication
public class Text1Application {
public static void main(String[] args) {
SpringApplication.run(Text1Application.class, args);
}
@Bean
MultipartConfigElement multipartConfigElement() {
MultipartConfigFactory factory = new MultipartConfigFactory();
factory.setLocation("D:\\safedistrict-img");
return factory.createMultipartConfig();
}
}
后台2(服务器中)
@RequestMapping("/savefile")
public String saveArea(@RequestParam("file") MultipartFile file) {
String path = ElantripConstants.UPLOAD_PATH;
String url = null;
if (file != null) {
String fileName = file.getOriginalFilename();
File targetFile = new File(path, fileName);
if (!targetFile.isDirectory()) {
targetFile.mkdirs();
}
try {
file.transferTo(targetFile);
} catch (Exception e) {
rsInfo.setMessage("上传图片出错!!");
rsInfo.setCode("23333");
}
url = ElantripConstants.UPLOAD_URL + fileName;
}
}
public class ElantripConstants {
public static final String UPLOAD_PATH = "/usr/share/nginx/html/www/safedistrict-upload/";
public static final String UPLOAD_URL = "http://www.emoonbow.com/safedistrict/"; // 服务器的访问地址
public static final String QIUNIU_UPLOAD_URL = "http://youpaiyun.zaiyoyo.com/"; // 七牛云地址
}