我有一個窗體,用戶可以粘貼圖像的外部網址。是否有可能通過JavaScript來抓取該文件,然後將其發佈到REST API?我爲其餘的api使用parse.com。是否可以獲取外部圖像並僅通過Javascript通過REST API發送?
1
A
回答
1
無論如何,由於使用跨源資源的限制,圖像首先必須拉到服務器上。一旦你做到了這一點,你可以用我詳細的例子,將圖像轉換爲Base64
,然後進入一個JSON
字符串準備通過POST
被運送到您的REST
服務器:
<input id="urlText" />
<input id="sendData" type="submit" />
<img id="img" src="http://fiddle.jshell.net/img/logo.png" />
<script>
var imgElem = document.getElementById('img');
$('#urlText').keyup(function(){
$('#img').attr('src',$('#urlText').val());
});
$('#sendData').click(function(){
var imgData = JSON.stringify(getBase64Image(imgElem));
$.ajax({
url: 'http://url.com/rest/api',
dataType: 'json',
data: imgData,
type: 'POST',
success: function(data) {
console.log(data);
}
});
});
function getBase64Image(imgElem) {
// imgElem must be on the same server otherwise a cross-origin error will be thrown "SECURITY_ERR: DOM Exception 18"
var canvas = document.createElement("canvas");
canvas.width = imgElem.clientWidth;
canvas.height = imgElem.clientHeight;
var ctx = canvas.getContext("2d");
ctx.drawImage(imgElem, 0, 0);
var dataURL = canvas.toDataURL("image/png");
return dataURL.replace(/^data:image\/(png|jpg);base64,/, "");
}
</script>
我jsFiddle example在這裏。
2
...圖像的外部網址。是否有可能通過javascript去抓取該文件...
不會,這是由same origin policy阻止,您將不被允許訪問它。只需將它的URL發佈到REST API並在服務器端獲取即可。
儘管無法訪問與其關聯的文件或數據,當然,您也可以通過嵌入<img>
元素來顯示它。
相關問題
- 1. 獲取圖像並通過gwan發送
- 2. 是否可以通過外部客戶端發送WhatsApp消息?
- 3. 是否可以通過RDCOM發送可視化圖像?
- 4. 是否可以通過FCM發送圖像?
- 5. 通過REST發送/接收圖像
- 6. 是否可以通過smtp通過bash腳本發送郵件?
- 7. 離線時是否可以通過gcm發送推送通知?
- 8. 是否可以獲取HTML5 SessionStorage的值並通過電子郵件發送?
- 9. 如何通過Skype API發送圖像?
- 10. 通過Instasharp API向Instagram發送圖像
- 11. 通過web api發送圖像返回
- 12. 是否可以通過Android Facebook API發送好友請求?
- 13. 是否可以通過Selenium RC加載外部JavaScript?
- 14. 在REST API上通過GET請求發送圖像數據
- 15. 如何通過REST API發送文件?
- 16. Quickbooks Desktop通過REST API發送信息
- 17. 通過WebRTC發送並驗證圖像
- 18. 通過TCP發送圖像並保存
- 19. 通過AJAX發送圖像
- 20. 通過goRPC發送圖像
- 21. 通過$ http.post發送圖像
- 22. 通過iphone發送圖像
- 23. 是否可以通過Phonegap獲取iOS應用推送設置?
- 24. 是否可以通過API獲取Instagram新聞提要?
- 25. Facebook活動日誌是否可以通過Graph API獲取?
- 26. 是否可以通過Word api獲取換行符的文本?
- 27. 是否可以通過Chrome App Indentity Api獲取Id令牌?
- 28. 是否可以通過Google plus API獲取電話號碼
- 29. 是否可以通過Google API獲取本地商業結果?
- 30. 通過外鍵獲取圖像
爲什麼你要客戶端下載文件? –
那麼,我不完全確定我在做什麼。該應用程序是所有客戶端(backbone.js + parse.com)。我已經有一個上傳器工作,所以我想如果我能以某種方式獲得客戶端文件,那麼我可以像我現在一樣上傳到parse.com。 – brianandrich
您可以使用'javascript'從'url'中獲取圖像[像這樣](http://jsfiddle.net/ZF3qe/1/)。 –