2016-11-28 90 views
1

我開發的應用程序和使用JavaScript的方法「JSONP」來發送和獲取數據,並從PHP MYSQL &服務器,因爲該應用程序是不是我的數據保存到同一臺服務器上。如何使用jsonp將圖像發送到服務器?

我可以使用JSONP相同的方法, 喜歡它編碼的圖像發送到服務器或使用二進制或東西嗎?

+4

您應該改用CORS。 – SLaks

回答

2

您可以base64編碼圖像並將其作爲字符串發送。你會做沿着這些路線的客戶端的東西:

var the_file = new Blob([window.atob(base_64_string)], { type: 'image/png', encoding: 'utf-8' }); 
var fr = new FileReader(); 
fr.onload = function (oFREvent) { 
    var v = oFREvent.target.result.split(',')[1]; 
    v = atob(v); 
    var good_b64 = btoa(decodeURIComponent(escape(v))); 
    img.src = "data:image/png;base64," + good_b64; 
    img.onload = function() { 
     //do stuff here 
    }; 
}; 
fr.readAsDataURL(the_file); 

正如@SLaks在他的評論暗示,可以考慮使用CORS標題爲您的端點,而不是JSONP,但不是必需的。

不知道你的使用情況是什麼,但爲什麼不直接使用鏈接的形象呢?

+0

謝謝你是我想要的答案...但是我發現如果我上傳了多個文件,那將會很糟糕,非常感謝你 –

1

你不能使用jsonp流式傳輸圖像。 你有兩個選擇使用iframe trick

,或者如果你你會限制文件尺寸圖像編碼圖像基地64 JSON字符串你可以使用WebSockets

相關問題