【业务功能:上传文件】
每次使用到“下载文件”都会找以前的代码copy,我受够了去找以前代码的过程,我把它记录到博客里
前端部分
<form id= "uploadForm" method= "post" enctype ="multipart/form-data">
<input type ="submit" value="上传"/>
</form>
function shangchuan(){
var $file1 = $("input[name='fileName1']").val();
// 判断文件是否为空
if ($file1 == "") {
alert("请选择上传的目标文件! ")
return false;
}
//判断文件类型,我这里根据业务需求判断的是Excel文件
var fileName1 = $file1.substring($file1.lastIndexOf(".") + 1).toLowerCase();
if(fileName1 != "xls" && fileName1 !="xlsx"){
alert("请选择Execl文件!");
return false;
}
//判断文件大小
var size1 = $("input[name='fileName1']")[0].files[0].size;
if (size1>104857600) {
alert("上传文件不能大于100M!");
return false;
}
boo1 = true;
var type = "file";
var formData = new FormData();//这里需要实例化一个FormData来进行文件上传
formData.append(type,$("#fileName1")[0].files[0]);
$.ajax({
type : "post",
url : "uploadToFile",
data : formData,
processData : false,
contentType : false,
success : function(data){
if (data=="error") {
alert("文件提交失败!");
}else{
$("input[name='userUrl']").val(data);
alert("文件上传成功!");
}}
});
}
后端部分
@RequestMapping(value = "/upload", method = RequestMethod.POST)
@ResponseBody
public String upload(MultipartFile file,HttpServletRequest request) throws IOException {
//系统服务器路径
String bath = request.getSession().getServletContext().getRealPath(string);
//获取文件名称
String originalFilename = file.getOriginalFilename();
File file2 = new File("D://abc.xlsx");
if (!file2.exists()) {
file2.createNewFile();
}
//进行文件的保存
file.transferTo(file2);
//返回文件的绝对路径
return file2.getAbsolutePath();
}