Muat Turun Fail Asynchronous Menggunakan Ajax
Dalam senario yang disediakan, anda menghadapi isu di mana tindakan Struts2 digunakan untuk memuat turun fail, tetapi jQuery post() call mendapatkan semula fail sebagai aliran binari dan bukannya membuka tetingkap muat turun fail. Artikel ini bertujuan untuk menangani masalah dan menyediakan penyelesaian untuk menggesa tetingkap muat turun fail.
Kunci untuk mendayakan muat turun fail menggunakan Ajax terletak pada penggunaan pengepala respons Pelupusan Kandungan. Pengepala ini hendaklah ditetapkan kepada lampiran; filename={fileName}, dengan {fileName} mewakili nama fail yang dikehendaki. Dengan menetapkan pengepala ini, anda mengarahkan penyemak imbas untuk menggesa pengguna dengan tetingkap muat turun fail.
Untuk mengubah suai pengepala Pelupusan Kandungan secara dinamik dalam tindakan Struts2 anda, anda boleh menggunakan pemintas. Berikut ialah contoh cara anda boleh melakukan ini:
public class DownloadInterceptor implements Interceptor { @Override public String intercept(ActionInvocation invocation) throws Exception { HttpServletResponse response = ServletActionContext.getResponse(); response.setHeader("Content-Disposition", "attachment; filename=" + actionInvocation.getArgs()[0]); // Replace with your code return invocation.invoke(); } @Override public void destroy() {} @Override public void init() {} }
Setelah anda melaksanakan pemintas, anda boleh menggunakannya pada tindakan muat turun untuk menetapkan pengepala Pelupusan Kandungan secara dinamik.
Oleh menggabungkan langkah-langkah ini, anda boleh mengkonfigurasi aplikasi Struts2 anda untuk memuat turun fail secara tidak segerak menggunakan Ajax dan membenarkan pengguna menyimpan fail secara setempat.
Atas ialah kandungan terperinci Bagaimana untuk Mencetuskan Muat Turun Fail dengan Ajax dan Tindakan Struts2?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!