我想获取粘贴数据的文件类型,但是在控制台中抛出了错误:
错误:
Uncaught TypeError: Cannot read property 'type' of undefined
JS:
var reader = new FileReader();
$(".paste").on('drop', function( e ) {
e.stopPropagation();
e.preventDefault();
var file = e.target.files || (e.dataTransfer && e.dataTransfer.files);
var legalTypes = ["image/png", "image/jpeg", "image/gif"];
if(legalTypes.indexOf(file.type) === -1) {
alert("Please only upload image files!");
return false;
}
答案 0 :(得分:0)
使用event.originalEvent
获取dataTransfer
个对象。
此外,files对象将包含文件数组。所以你需要遍历它们或使用第一个元素。
最终代码为:
$(document).ready(function () {
var reader = new FileReader();
$(".paste").on('drop', function( e ) {
e.stopPropagation();
e.preventDefault();
var files = e.originalEvent.target.files || (e.originalEvent.dataTransfer && e.originalEvent.dataTransfer.files);
var legalTypes = ["image/png", "image/jpeg", "image/gif"];
for( i in files ) {
if(legalTypes.indexOf(files[i].type) < 0 ) {
alert("Please only upload image files!");
return false;
}
}
});
});