2017-06-11 16 views
0

我想加密php文件發佈的mp4文件。所以,我得到了blob中的mp4文件,並且我想要將blob轉換爲String,因爲它可以加密數據。evt.target.result未定義,如何加密blob?

我想要使用readnBinaryString與evt.target.result 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 &病毒= 1個&域= mail.naver.com & u = fnclovers'width ='310'>

回答

0

您可能需要更新blob的類型。你爲第二個blob做,但不是第一個。

+0

非常感謝您的幫助!但是,我添加了blob的類型,它也不工作。不管怎樣,謝謝! – fnclovers

+0

我解決了!這是我沒有考慮文件大小限制的問題! – fnclovers