我想加密由php文件发布的mp4文件。因此,我在blob中获取mp4文件,并且我希望将blob转换为String,因为加密数据。
我正在尝试使用带有evt.target.result的readAsBinaryString来获取blob,我不知道为什么这个输出是未定义的。请帮我解决这个问题。这是源代码!
var mp4text;
var reader = new FileReader();
var xhr = new XMLHttpRequest();
xhr.open('POST', '111', true);
xhr.responseType = "blob";
xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
xhr.onload = function(e) {
if (this.status == 200) {
var blob = new Blob([this.response], {type : "video/mp4"});
reader.onload = function (evt) {
mp4text = evt.target.result;
mp4text = CryptoJS.AES.encrypt(mp4text, "test");
mp4text = mp4text.toString()
var myBlob = new Blob([mp4text], {type : "video/mp4"});
var downloadUrl = URL.createObjectURL(myBlob);
document.getElementById('myVideo').src = downloadUrl;
}
reader.readAsBinaryString(blob);
console.log(this.response);
var downloadUrl = URL.createObjectURL(blob);
document.getElementById('myVideo').src = downloadUrl;
} else {
alert('Unable to download mp4.')
}
}
xhr.send('id=1');
这是调试信息
https://mail.naver.com/file/download/each/?attachType=normal&mailSN=103&attachIndex=2&virus=1&domain=mail.naver.com&u=fnclovers'width = '310' >
答案 0 :(得分:0)
您可能需要更新blob的类型。你是为第二个blob而不是第一个blob做的。