亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

問一個感覺就是搞笑的需求

問一個感覺就是搞笑的需求

躍然一笑 2018-12-12 14:15:02
情景:后臺相關的只有一個上傳文件的接口(對方不會再給你寫其它接口了?。。。?,前端上傳什么文件它就把這個文件存到服務器。前端通過 ajax 發送一個 get 請求把服務器上的一個 data.json文件下載,然后根據這個 json 文件渲染出相關的 dom,如果用戶進行了相關操作的話,修改這個data.json文件,然后再把這個 data.json文件通過上傳文件的接口存回服務器,以供下次請求下載。我現在面臨的問題:ajax 發送的 get 請求把data.json 下載下來時我現在只知道把這個 json 轉成字符串或者Object,不知道怎么以文件的形式保存下來還要讀取、操作最后再上傳。瀏覽器上傳文件應該是只有通過 input:file 標簽讓用戶選中文件后再上傳吧。但現在這個需求是明顯不可能讓用戶選擇文件再上傳的,而這又不符合瀏覽器的安全策略了(文件不通過用戶的選擇,而是直接用 js 選中上傳)。對方給的兩個思路是(感覺等于沒說):js 生成系統臨時文件,加載文件路徑到瀏覽文件的 input,提交文件。ajax發送 post 請求時直接附上生成的文件內容在這里求各位大佬給點思路,如果不行的話就給點強力的理由反駁對方。在這里先謝謝各位大佬提醒的 Blod,要不都不知道還有這么一個接口,以后有時間的話還是要把MDN的api都過一遍的好,不至于一點思路都沒有。隨便把實現貼一下,其實了解的話也挺簡單的。相關文檔: Blob File
查看完整描述

1 回答

?
森林海

TA貢獻2011條經驗 獲得超2個贊

其實沒有你想象的那么復雜

  1. get到data.json之后,并不用將其內容保存到本地文件,瀏覽器內js也是做不到這樣的事情的,只要保存在ls這樣的本地存儲內,或是在當前頁面內進行修改后上傳

  2. 利用formdata+blob對象方式將修改過后的json先轉化為blob對象,并指定MIME為json文件。不過這里也是可以使用File對象進行構造,都可以試一下。也不是很清楚你的項目的具體情況。

  3. 然后formdata進行ajax上傳。Blob對象基本上約等于file對象,其為二進制格式數據,但是不同的后端代碼上可能會有對應的不同接受寫法。


查看完整回答
反對 回復 2019-01-27
  • 1 回答
  • 0 關注
  • 422 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號