传统上传文件使用表单form,但会刷新页面。使用ajax+FormData可以实现异步上传。
代码如下:
<!-- 上传文件 -->
<script>
//页面渲染成功才可以操作
jQuery(document).ready(function(){
//绑定login的click事件
$("#upload_file").on("click",function(){
var filename = $("#upload_file_name").val();//文件名
var key = "/"+filename;
var filetype = "xlsx";
var form = new FormData();
form.append("bucket", "hos_8657b14e019b4d51af8fb7aadf5c751d");
form.append("key", key);
form.append("mediaType", "xlsx");
form.append("content", $('#filer_example2')[0].files[0]);
form.append("", "");
$.ajax({
type:"POST",
url:"hos/v1/object",
data:form,
processData: false,
contentType: false,
crossDomain:true, //设置跨域为true
xhrFields:{withCredentials:true},
success:function(data) {
if(data=="success"){
alert("添加成功");
// window.location.href="pro-users.html";
}else{
alert("添加失败");
}
},
error:function(data) {
alert("添加失败");
}
});
return false;
});
});
</script>
关键在于
processData: false,
contentType: false,
这两句设置文件不进行转换,按原格式上传。