檔案正在上傳到遠程服務器,我需要將檔案下載到本地計算機。我通過 ajax 運行 GET 呼叫來獲取資料。在運行以下代碼時 -
console.log(xhrdoc.responseText);
此行在瀏覽器的控制臺中回傳檔案的內容。我需要將此資料寫入檔案,然后使用 Javascript 下載檔案。該檔案可以是任何格式,如 txt、pdf、png、jpg 等。還有一種方法可以以一種方式處理所有不同的檔案格式嗎?我的首要任務是txt檔案。我怎樣才能做到這一點?
任何幫助,將不勝感激。謝謝你。
uj5u.com熱心網友回復:
理想情況下,您可以簡單地通過使用資料 URI 來做到這一點。創建一個<a>標簽并在標簽的 href 屬性中提供一個 blob。
<a href="data:application/octet-stream;charset=utf-16le;base64,//VGV4dCBmaW5sZSBleGFtcGxl">Link to download text file</a>
但是,如果您希望通過腳本下載它,您可以創建一個<a>標簽并以編程方式單擊它并洗掉該<a>標簽。
請在瀏覽器控制臺中嘗試以下代碼。由于某種原因,運行代碼片段按鈕似乎不起作用。
function downloadFileWithContents(filename, fileContents) {
const blob = new Blob([fileContents], {type: 'text'}); // create a blob with fileContents
if(window.navigator.msSaveOrOpenBlob) {
window.navigator.msSaveBlob(blob, filename);
}
else{
const elem = window.document.createElement('a');
elem.href = window.URL.createObjectURL(blob);
elem.download = filename;
document.body.appendChild(elem);
elem.click();
document.body.removeChild(elem);
}
}
downloadFileWithContents('Filename.txt', 'TEXT');
// downloadFileWithContents('Filename.txt', xhrdoc.responseText)
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/493860.html
標籤:javascript 阿贾克斯 下载 得到
