javascript - JS 文件上傳問題
問題描述
問題:1、圖片可以轉成base64上傳,為什么Excel,pdf等不能轉base64?2、通過XMLHttpRequest上傳文件,文件放入FormData中,但怎么給文件綁定標記,比如說,怎么知道這個文件是我當前用戶的?3、大家有沒有好的js文件上傳解決方案?
問題解答
回答1:在現代瀏覽器下,可使用 html5 相關API實現。我暫時想到這幾個 Blob FileReader btoa 具體的就需要你去查文檔了
FormData可以用append添加額外的字段。 這里你需要放開思路,一個字段最終代表著傳遞到后臺的一個參數,這個參數其實是很抽象的一個概念,具體取決與你前臺跟后臺的約定。 舉個例子,我可以在最后要發送請求的時候構造一個額外對象(它的字段取值要跟后臺商量),添加到FormData中,發送到服務端。
var meta = { name:'', time:'', data:[]} formData.append('meta', JSON.stringify(meta));
服務端最后再將這個字段反序列化成對象,取得里面的值。
最后,js文件上傳是HTML5后提供的功能所以有兼容性的問題,說白了也就是那幾個新增API的使用,去 MDN上把相關文檔、demo 看一下就差不多了
回答2:1.pdf應該是可以轉base64的,excel沒測試過,但excel可以轉為Blob類型,理論上也應該可以轉為base6。
2.FormData再加一個參數作為文件的唯一標記,一起傳到后端就行了。
回答3:第1點我不太清楚,第2點需要通過session,靠服務端
回答4:第二點可以多給formdata增加一個input字段
相關文章:
1. 在html文件的目錄下輸入代碼按回車后顯示這個,哪位大佬幫幫我 呀2. 老師您的微信號是多少?3. node.js - nodejs開發中常用的連接mysql的庫4. windows7 ping不通虛擬機VMware上的linux(ubuntu)的ip5. mysql - jdbc的問題6. python - 我在使用pip install -r requirements.txt下載時,為什么部分能下載,部分不能下載7. 視頻文件不能播放,怎么辦?8. mysql - 分庫分表、分區、讀寫分離 這些都是用在什么場景下 ,會帶來哪些效率或者其他方面的好處9. 網頁爬蟲 - python 爬取網站 并解析非json內容10. mysql - 如何減少使用或者不用LEFT JOIN查詢?
