html代码片段:
<input type="file" id="fileInput"/>
js:
var fileInput = document.querySelector('#fileInput');
var file = this.files[0];
if (!/audio\/\w+/.test(file.type)) {/*可以把autio改成其他文件类型 比如 image*/
alert("只能选择音频文件")
return false;
}
console.log(file.type)/*文件类型*/
var reader = new FileReader();
reader.readAsDataURL(file);
reader.onload = function () {
var audioBlob=convertBase64UrlToBlob(reader.result,file.type)
/*request("audio",audioBlob)这里是我的ajax请求*/
};
};
function convertBase64UrlToBlob(urlData,type){ /*转成二进制对象*/
var bytes=window.atob(urlData.split(',')[1]);
var ab = new ArrayBuffer(bytes.length);
var ia = new Uint8Array(ab);
for (var i = 0; i < bytes.length; i++) {
ia[i] = bytes.charCodeAt(i);
}
return new Blob( [ab] , {type : type});
}
function request(type,Blob){
var formData = new FormData();/*创建formData对象*/
formData.append("cover_img", Blob);
$.ajax({
url:"文件上传地址",
type:"POST",
processData: false,
contentType: false,
data: formData,
dataType: 'json',
success: function (data) {
}
})
}