[英]Convert FileReader.readAsText() result string back into a file object for download?
我有一個文件上傳組件,其中使用fileReader.readAsText()處理文件,然后將其轉換為base64並發送到服務器。
問題是我還需要允許用戶再次下載文件。 我已經解碼了,嘗試轉換為ArrayBuffer(除其他外),然后下載,但沒有成功。 我已經對SO進行了全面的研究,但沒有發現任何東西。 這就是我要下載的方式:
downloadFile (type) {
// the file is already decoded at this point and is the result of
// fileReader.readAsText()
var reader = new FileReader()
var blob = new Blob([this.uploadedFile])
reader.onload = function () {
var temp = reader.result
var a = document.createElement('a')
a.download = 'test.pdf'
a.href = window.URL.createObjectURL(new Blob([temp], {type: 'application/pdf'}))
a.dataset.downloadurl = [a.download, a.href].join(':')
a.click()
}
reader.readAsArrayBuffer(blob)
}
出來后,它只會下載空白的PDF(我還必須支持.rtf,.odf,.doc,.docx。)也許我只是使用了錯誤的數據格式?
找出解決方案。 而不是執行fileReader.readAsText(),我改為使用fileReader.readAsDataURL(),然后現在下載看起來像這樣
downloadFile() {
var a = document.createElement('a')
a.download = fileName
a.href = fileData
a.dataset.downloadurl = [a.download, a.href].join(':')
a.click()
}
最初的問題確實是錯誤的數據格式!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.