首頁 > web前端 > js教程 > 如何使用Ajax在Struts2應用程式中非同步下載檔案?

如何使用Ajax在Struts2應用程式中非同步下載檔案?

Linda Hamilton
發布: 2024-12-28 10:30:13
原創
508 人瀏覽過

How Can I Asynchronously Download Files in a Struts2 Application Using Ajax?

使用 Ajax 進行非同步檔案下載

問題:

在 Struts2 應用程式中,jQuery Ajax呼叫檢索二進位串流資料代表要下載的文件,但使用者無法儲存該檔案

解決方案:

現代瀏覽器方法(2019及更高版本)

對於現代瀏覽器,簡化的方法可以被採用:

  1. 使用fetch() API 用於取得檔案:

    fetch('https://jsonplaceholder.typicode.com/todos/1')
      .then(resp => resp.blob())
    登入後複製
  2. 為檔案建立對象URL:

      .then(blob => {
     const url = window.URL.createObjectURL(blob);
    登入後複製
  3. 建立隱藏物件元素並設定其屬性:

     const a = document.createElement('a');
     a.style.display = 'none';
     a.href = url;
     a.download = 'todo-1.json';
    登入後複製
  4. 將元素附加到文件並點選它:

     document.body.appendChild(a);
     a.click();
    登入後複製
  5. 刪除物件URL :

     window.URL.revokeObjectURL(url);
    登入後複製
  6. 通知用戶成功下載的信息:

     alert('your file has downloaded!');
    登入後複製

其他注意事項:

  • 確保與目標瀏覽器的相容性。
  • 單獨處理大型檔案下載以避免潛在的效能問題。

以上是如何使用Ajax在Struts2應用程式中非同步下載檔案?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板