html页面,点击input来选择文件
<input type="file" class="form-control" id="file" name="file">
<button class="btn btn-default" onclick="sendFile()" type="button">发送文件</button>
js代码
function sendFile(){
fileBox = $('#file')[0].files[0];
if (fileBox === null){
alert("请选择需要上传的文件");
return false;
}else {
var formData = new FormData();
formData.append("file",fileBox);
//可以附带一些其他信息
formData.append("userName",userName);
$.ajax({
type : "post",
url : "/meeting/upload",
data : formData,
processData : false,
contentType : false,
success : function(data){
if (data.end=="error") {
alert("文件提交失败!");
}else{
alert("文件上传成功!");
}}
});
}
}
后端controller代码
@PostMapping("/upload")
//MultipartFile 为springmvc用于接收文件的类
public Map<String,String> upload(MultipartFile file, HttpServletRequest request){
Map<String,String> map = new HashMap<>();
String userName = request.getParameter("userName");
if (file.getSize()>0){
try {
//System.getProperty("user.dir")可以获得该项目的根目录
String path = System.getProperty("user.dir")+"/src/main/resources/uploadFile/";
String name = roomId+"_"+userName+"_"+file.getOriginalFilename();
File file1 = new File(path,name);
file.transferTo(file1);
map.put("end","succeed");
}catch (Error | IOException error){
map.put("end","error");
}
}else {
map.put("end","error");
}
return map;
}