您的位置:首页 > 其它

使用ajax实现文件上传

2018-11-27 20:02 344 查看

记忆不太好,在这里写一写利用ajax实现文件上传.方便以后查看,正好和大家分享分享…
直接上代码吧!
html代码:

<input type="file" name="fileName1" id="fileName1"/>
<input type="button" onclick="sendToUser()" id="sendToUser" value="提交" />

js代码:

function sendToUser(){ //在这里进行ajax 文件上传 用户的信息
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("文件上传成功!");
}}
});
}

使用springboot项目进行接收上传文件
controller层:

/**
* 上传数据文件
*
* @author : lichenfei
* @date : 2018年11月22日
* @time : 下午2:46:29
* @return @
*/
@RequestMapping("/uploadToFile")
@ResponseBody
public String uploadToUser(@RequestParam("file") MultipartFile file, HttpServletRequest req, Model model) {
String fileName = file.getOriginalFilename();
if (fileName.indexOf("\\") != -1) {
fileName = fileName.substring(fileName.lastIndexOf("\\"));
}
// 获取文件存放地址
String filePath = dataPath;
File f = new File(filePath);
if (!f.exists()) {
f.mkdirs();// 不存在路径则进行创建
}
FileOutputStream out = null;
try {
// 重新自定义文件的名称
Date date = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss");
String d = sdf.format(date);// 时间
filePath = filePath + d + fileName;
out = new FileOutputStream(filePath);
out.write(file.getBytes());
out.flush();
out.close();
} catch (Exception e) {
return "error";
}
return filePath; // 返回文件地址
}

新人一枚,有什么问题希望多多指导!

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: