第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

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

問一個(gè)感覺就是搞笑的需求

問一個(gè)感覺就是搞笑的需求

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

1 回答

?
森林海

TA貢獻(xiàn)2011條經(jīng)驗(yàn) 獲得超2個(gè)贊

其實(shí)沒有你想象的那么復(fù)雜

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

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

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


查看完整回答
反對 回復(fù) 2019-01-27
  • 1 回答
  • 0 關(guān)注
  • 421 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號