我正在做一個將doc文件轉換爲另一個文件(基於用戶偏好)的小型HTML項目。該網站將讓用戶獲取文件,並在將文件發送到Java servlet之前選擇他們的文件處理方式。處理完文件後,servlet會將處理後的文件作爲可下載的文件發送,然後自動下載到用戶的瀏覽器下載文件夾中。獲取XHR作爲可下載文件發送的formdata輸出
起初,我使用了HTML的表單標籤,其上有各種輸入。提交表單後,處理後的文件會自動下載到我的瀏覽器的下載文件夾中。
但後來我改變了拾取文件的方法拖放,並使用XMLHttpRequest發送表單數據,以及刪除的文件到servlet。 formdata已成功發送到servlet,並且servlet正常處理文件。但是之後,servlet並沒有將處理後的文件作爲可下載的文件發送到我的瀏覽器。我檢查了檢查員,在網絡選項卡下的響應,它顯示了處理的文件內容,但我沒有得到像我通常使用表單標記方法得到的處理文件。
所以我想知道我在我的XHR代碼下面做錯了什麼?我只想從servlet中獲取處理後的文件作爲可下載的文件,而不是在我的頁面上顯示它。 HTML表單標記正常工作,servlet將處理後的文件作爲自動下載文件返回,但對於XHR,處理後的文件僅顯示在檢查器中網絡下的響應選項卡中,無法下載文件或任何其他文件。
function formHandler(form) {
var formdata = new FormData(form);
formdata.append("inputFile", doc);
var xhr = new XMLHttpRequest();
xhr.open('POST', "excelServlet", true);
xhr.send(formdata);
}