Rumah > hujung hadapan web > tutorial js > Bagaimanakah Saya Boleh Muat Turun Fail Secara Asynchronously dalam Aplikasi Struts2 Menggunakan Ajax?

Bagaimanakah Saya Boleh Muat Turun Fail Secara Asynchronously dalam Aplikasi Struts2 Menggunakan Ajax?

Linda Hamilton
Lepaskan: 2024-12-28 10:30:13
asal
507 orang telah melayarinya

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

Muat Turun Fail Asynchronous dengan Ajax

Masalah:

Dalam aplikasi Struts2, panggilan jQuery Ajax mendapatkan semula data strim binari mewakili fail untuk dimuat turun, tetapi pengguna tidak dapat menyimpan fail tersebut setempat.

Penyelesaian:

Pendekatan Penyemak Imbas Moden (2019 dan Kemudian)

Untuk pelayar moden, pendekatan yang dipermudahkan boleh diterima pakai:

  1. Gunakan fetch() API untuk mengambil fail:

    fetch('https://jsonplaceholder.typicode.com/todos/1')
      .then(resp => resp.blob())
    Salin selepas log masuk
  2. Buat URL objek untuk fail:

      .then(blob => {
     const url = window.URL.createObjectURL(blob);
    Salin selepas log masuk
  3. Buat yang tersembunyi elemen dan tetapkan atributnya:

     const a = document.createElement('a');
     a.style.display = 'none';
     a.href = url;
     a.download = 'todo-1.json';
    Salin selepas log masuk
  4. Tambahkan elemen pada dokumen dan klik padanya:

     document.body.appendChild(a);
     a.click();
    Salin selepas log masuk
  5. Alih keluar URL objek :

     window.URL.revokeObjectURL(url);
    Salin selepas log masuk
  6. Beritahu pengguna yang berjaya muat turun:

     alert('your file has downloaded!');
    Salin selepas log masuk

Pertimbangan Tambahan:

  • Pastikan keserasian dengan penyemak imbas sasaran.
  • Kendalikan besar muat turun fail secara berasingan untuk mengelakkan potensi masalah prestasi.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Muat Turun Fail Secara Asynchronously dalam Aplikasi Struts2 Menggunakan Ajax?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan