版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_36675996/article/details/80853850
前台:
<!--type为file-->
<input type="file" name="uploadFile" id="file_upload" onchange="setFlie(this)"/>
<!--进度条-->
<div class="progress progress-striped active" style="width:30%; display:none" id="testDiv">
<div id="test" class="progress-bar progress-bar-success" role="progressbar" style="width: 0%;">
</div>
</div>
//js
//pdf上传
function setFlie(obj) {//用于进行pdf上传,返回地址
var f = $(obj).val();
//判断文件是否为空
if (f == null || f == undefined || f == '') {
return false;
}
//判断上传的文件是否为pdf格式
if (!/\.(?:pdf)$/.test(f)) {
layer.alert("类型必须是pdf格式(.pdf)",{icon: 2});
$(obj).val('');
return false;
}
$("#testDiv").css("display","block");
//进度条
$("#test").css("width","20%");
var data = new FormData();
//文件大小
var filesize = 0;
var maxsize = 20*1024*1024;//文件上传最大值20M
$.each($(obj)[0].files, function(i, file) {
filesize = file.size;
data.append('file', file);
});
//判断是否超出限制
if(filesize>maxsize){
parent.layer.msg('上传文件请勿超过20M!', {time : 2000,icon : 2});
return false;
}
var path = "http://xxxx/basicInfo/uploadFile";
//进度条
$("#test").css("width","50%");
$.ajax({
type : "POST",
url : path,
data : data,
cache : false,
contentType : false, //不可缺
processData : false, //不可缺
dataType : "json",
success : function(suc) {
if (suc.code == 0) {
$("#test").css("width","100%");
//这里可以写上传成功后的一些逻辑
parent.layer.msg('上传成功!', {time : 1200,icon : 1});
$("#testDiv").css("display","none");
} else {
parent.layer.msg('上传失败!', {time : 1200,icon : 2});
$("#testDiv").css("display","none");
$("#url").val("");
$(obj).val('');
}
},
error : function(XMLHttpRequest, textStatus, errorThrown) {
parent.layer.msg('上传失败,请检查网络后重试!', {time : 1500,icon : 2});
$("#url").val("");
$(obj).val('');
}
});
}
controller
// 上传pdf附件
@ResponseBody
@RequestMapping(value = "basicInfo/uploadFile", method = RequestMethod.POST)
public String uploadFile(@RequestParam(value = "file", required = false) MultipartFile file,
HttpServletRequest request) {
File targetFile = null;
String msg = "";// 返回存储路径
int code = 1;
String fileName = file.getOriginalFilename();// 获取文件名加后缀
if (fileName != null && fileName != "") {
String returnUrl = "xxxxx";// 存储路径
String path = "xxx"; // 文件存储位置
String fileF = fileName.substring(fileName.lastIndexOf("."), fileName.length());// 文件后缀
fileName = new Date().getTime() + "_" + new Random().nextInt(1000) + fileF;// 新的文件名
// 先判断文件是否存在
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
String fileAdd = sdf.format(new Date());
File file1 = new File(path + "/" + fileAdd);
// 如果文件夹不存在则创建
if (!file1.exists() && !file1.isDirectory()) {
file1.mkdir();
}
targetFile = new File(file1, fileName);
try {
file.transferTo(targetFile);
msg = returnUrl + fileAdd + "/" + fileName;
code = 0;
} catch (Exception e) {
e.printStackTrace();
}
}
return JSON.toJSONString(ResponseResult.result(code, msg));
}
搞定!