jQuery是一種廣泛使用的JavaScript庫,可以幫助我們簡化JavaScript編碼。其中一個常見的應用是通過ajax請求訪問后端接口返回數據。這里,我們要介紹的是通過jQuery訪問action返回文件。
首先,需要準備好一個后端接口,該接口可以返回文件流數據。
public class DownloadAction extends ActionSupport { private InputStream inputStream; public String downloadFile() throws Exception { String filePath = "D:/test.txt"; // 文件路徑 File file = new File(filePath); inputStream = new FileInputStream(file); return "success"; } public InputStream getInputStream() { return inputStream; } }
該接口中的downloadFile方法會返回文件流數據,通過getInputStream方法返回給前端。下面就是通過jQuery訪問該接口并下載文件的代碼。
$(document).ready(function(){ $("#downloadBtn").click(function(){ $.ajax({ type : "POST", url : "download.action", success : function(response){ var blob = new Blob([response]); // response是二進制數據流 var fileName = "test.txt"; saveAs(blob, fileName); // saveAs是FileSaver.js庫中提供的方法,用于保存文件 } }); }); });
上述代碼中,當用戶點擊id為downloadBtn的按鈕時,會觸發ajax請求到后端接口download.action。請求成功后,通過Blob構造函數將二進制數據流轉換為Blob對象,再通過FileSaver.js提供的方法saveAs將文件保存到本地。
以上就是通過jQuery訪問action返回文件的實現方法,可以幫助我們方便地處理文件下載操作。