2012-12-14 38 views
0

我使用XHR請求發送Blob文件,但我需要發送一些其他數據;最好是一組數據。使用XHR發送blob和其他數據

我知道我不能在blob數據上調用json_encode,因爲它是二進制數據;但有沒有辦法做到這一點?

編輯:我可以使用formdata來結合blob和數組嗎?

+0

是BLOB文件 – closure

+0

是:。?這是一個文件:音頻/ WAV,它可以是相當大的(高達20MB) – Thomas

回答

0

通常,您將數據編碼爲base64,然後使用multipart。文件數據以base64編碼,您需要在服務器端進行解碼。在客戶端如果附加數據是小,你可以設置爲文件名(在服務器上您的定製邏輯解釋它,你可以使用window.btoa

Content-Type:multipart/form-data, boundary=xxxxxxxxx 

--xxxxxxxxx 
Content-Disposition: form-data; name='uploadfile'; filename='123_logo.jpg' 
Content-Transfer-Encoding: base64 
Content-Type: image/jpeg 
/*base64data*/` 

。否則,使用多的另一部分吧。

20MB可能是單個上傳大尺寸你可能要考慮在更小的塊組塊

+0

爲什麼我將它編碼爲base64而不是隻有一個formdata:我在其中添加了一個json編碼數組和blob文件? – Thomas