是否有任何方法使用AJAX通過HTTP POST請求圖像文件,然後用HTML中的數據創建新的圖像?既然你不能用IMG標籤來做到這一點,是否可以用Image javascript對象來做到這一點?有沒有一種方法可以通過HTTP POST檢索通過HTTP POST獲取的數據來載入圖像?
3
A
回答
5
是的,這是可能的。
當您的serverscript打開圖像文件並將它們編碼爲base64
字符串時,幾乎所有的瀏覽器(IE7及以下版本除外)都可以處理該文件。例如:
jQuery('<img>', {
src: 'data:image/jpeg;base64,' + someBase64EncodedString
}).appendTo(document.body);
這方面的一個現實世界的例子,可以在這裏找到:https://github.com/jAndreas/Supply
1
+0
這是一個有趣的答案,因爲它適用於早期形式的IE瀏覽器。 +1 – ricosrealm
1
如果返回你很可能不使用data URIs並可能帆布它的base64編碼的圖像數據。
一些「僞」代碼(使用PHP和JS + jQuery)來演示你可以做什麼。
服務器:
$image = new Imagick($imagePath);
echo 'data:image/png;base64,' . base64_encode($image);
客戶:
$.ajax({
method: "post",
url: "/foo/bar.php",
success: function (data) {
$("<img />").attr("src", data).appendTo("#myContainer");
}
});
+0
+1謝謝你的深入代碼 – ricosrealm
1
相關問題
- 1. 通過HTTP POST發送圖像數據
- 2. 有沒有辦法通過HTTP POST請求來訪問RabbitMQ?
- 3. 如何使用Glide通過HTTP POST方法下載圖像
- 4. 無法通過HTTP POST
- 5. Java作爲HTTP服務器 - 可能通過POST方法獲取圖像?
- 6. 通過HTTP POST方法在android系統
- 7. 我可以通過一個cookie在我的http post與clj-http
- 8. 通過JQuery的HTTP POST
- 9. 通過POST的HTTP補丁?
- 10. Android AsyncTask通過http發送數據Post
- 11. 通過原始HTTP傳遞POST數據
- 12. 有一種應用HTTP方法的laravel過濾器的方法?像在POST?
- 13. 通過SPARQL通過來自節點j的HTTP POST請求插入數據
- 14. HTTP POST請求通過Mailjet
- 15. 通過HTTP POST更新
- 16. 通過HTTP發送XML post
- 17. 通過HTTP POST上載文件
- 18. WordPress的AJAX沒有通過POST數據
- 19. 目標c - 通過http發送圖像POST POST
- 20. 通過HTTP/Post將JSON寫入Solr
- 21. 發送通過HTTP POST方法字典數據斯威夫特
- 22. 使用HTTP POST方法通過php更新mysql數據庫
- 23. 通過http post參數傳遞參數
- 24. 在通過HTTP POST獲取的html中插入<img>
- 25. 無法通過Http POST方法中的數組值
- 26. 是否應該通過HTTP-POST發送所有數據?
- 27. 有沒有辦法通過HTTP檢索Heroku日誌?
- 28. POST請求沒有通過
- 29. AJAX POST沒有通過PHP
- 30. 如何通過HTTP POST參數
這個答案很好。它承認下面的IE7有問題。我也在MSDN上發現了這一點: http://msdn.microsoft.com/en-us/library/cc848897%28VS.85%29.aspx 「數據URI不能大於32,768個字符。」這限制了您可以加載的圖像類型。 – ricosrealm