gpt4 book ai didi

javascript - 文件十六进制值检查不起作用

转载 作者:行者123 更新时间:2023-12-03 02:40:37 25 4
gpt4 key购买 nike

我正在检查使用魔数(Magic Number)进行mime类型验证文件类型的十六进制值但它不起作用它无法检查并且<强>返回错误的警报消息,即使文件具有正确的十六进制值作为标题。

下面是代码中的详细信息:

<小时/>

jQuery(document).ready(function() { 
jQuery.fn.hasMimetype = function(ctrl) {
try {
ctrl.value = null;
} catch(ex) { }
if (ctrl.value) {
ctrl.parentNode.replaceChild(ctrl.cloneNode(true), ctrl);
}
}

const fileSelector2 = document.getElementById('file')

jQuery('#file').change(function(event) {


const file = event.target.files[0]
//alert(file.type);
const filereader = new FileReader()

filereader.onloadend = function(evt) {
var header2 = "";

var arr = (new Uint8Array(evt.target.result)).subarray(0, 4);
for(var i = 0; i < arr.length; i++) {
header2 += arr[i].toString(16);

}
if(header2 !=='d0cf11e0' || header2 !=='504b34'){
alert(header2);
alert("only doc/docx files are supported");
$('#file').hasMimetype(fileSelector2);
}
}

filereader.readAsArrayBuffer(file);
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<input type="file" id="file" name="file" />

最佳答案

无论 header2 的值如何,这始终为真:

if(header2 !=='d0cf11e0' || header2 !=='504b34')

您可能想要这个:

if(header2 !=='d0cf11e0' && header2 !=='504b34')

关于javascript - 文件十六进制值检查不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48340710/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com