84669 人學習
152542 人學習
20005 人學習
5487 人學習
7821 人學習
359900 人學習
3350 人學習
180660 人學習
48569 人學習
18603 人學習
40936 人學習
1549 人學習
1183 人學習
32909 人學習
問題:1、圖片可以轉成base64上傳,為什麼Excel,pdf等不能轉base64? 2、透過XMLHttpRequest上傳文件,文件放入FormData中,但怎麼給文件綁定標記,比如說,怎麼知道這個文件是我目前的使用者? 3、大家有沒有好的js檔案上傳解決方案?
在現代瀏覽器下,可使用 html5 相關API實作。我暫時想到這幾個 Blob FileReader btoa 具體的就需要你去查文件了
html5
FormData可以用append添加額外的欄位。 這裡你需要放開思路,一個欄位最終代表傳遞到後台的一個參數,這個參數其實是很抽象的一個概念,具體取決與你前台跟後台的約定。 舉個例子,我可以在最後要發送請求的時候構造一個額外對象(它的字段取值要跟後台商量),添加到FormData中,發送到服務端。
FormData
append
var meta = { name:"", time:"", data:[] } formData.append("meta", JSON.stringify(meta));
服務端最後再將這個欄位反序列化成對象,取得裡面的值。
最後,js檔案上傳是HTML5後提供的功能所以有相容性的問題,說白了也就是那幾個新增API的使用,去 MDN上把相關文檔、demo 看一下就差不多了
1.pdf應該是可以轉base64的,excel沒測試過,但excel可以轉為Blob類型,理論上也應該可以轉為base6。
2.FormData再加一個參數作為檔案的唯一標記,一起傳到後端就行了。
第1點我不太清楚,第2點需要通過session,靠服務端
第二點可以多給formdata增加一個input欄位
在現代瀏覽器下,可使用
html5
相關API實作。我暫時想到這幾個 Blob FileReader btoa 具體的就需要你去查文件了FormData
可以用append
添加額外的欄位。 這裡你需要放開思路,一個欄位最終代表傳遞到後台的一個參數,這個參數其實是很抽象的一個概念,具體取決與你前台跟後台的約定。舉個例子,我可以在最後要發送請求的時候構造一個額外對象(它的字段取值要跟後台商量),添加到
FormData
中,發送到服務端。服務端最後再將這個欄位反序列化成對象,取得裡面的值。
最後,js檔案上傳是HTML5後提供的功能所以有相容性的問題,說白了也就是那幾個新增API的使用,去 MDN上把相關文檔、demo 看一下就差不多了
1.pdf應該是可以轉base64的,excel沒測試過,但excel可以轉為Blob類型,理論上也應該可以轉為base6。
2.FormData再加一個參數作為檔案的唯一標記,一起傳到後端就行了。
第1點我不太清楚,第2點需要通過session,靠服務端
第二點可以多給formdata增加一個input欄位