Monday, June 3, 2024
 Popular · Latest · Hot · Upcoming
130
rated 0 times [  133] [ 3]  / answers: 1 / hits: 19169  / 11 Years ago, sat, august 17, 2013, 12:00:00

I'm probably missing something simple here, but how would I create a File object in JavaScript given the binary data as received from an AJAX request?



$.ajax({
url: http://example.com/image.jpg,
success: function(data) {
// Convert binary data to File object
}
});

More From » jquery

 Answers
7

I finally figured this out. In order to avoid cross-site scripting issues, I created a proxy endpoint on my server. Then I can pass the image URL to my server, which then executes a GET request on the remote file, converts the response to Base64, and sends it back to the browser. The browser can then convert the data back to binary and create a Blob (which is as good as a File for my purposes).



$.ajax({
url: apiRoot + /proxy,
data: {url: http://example.com/image.jpg},
success: function(data) {
var binary = atob(data.split(',')[1]);
var array = [];
for (var i = 0; i < binary.length; i++) {
array.push(binary.charCodeAt(i));
}
var file = new Blob([new Uint8Array(array)], {type: 'image/jpeg'});
}
});

[#76309] Thursday, August 15, 2013, 11 Years  [reply] [flag answer]
Only authorized users can answer the question. Please sign in first, or register a free account.
demondp

Total Points: 154
Total Questions: 97
Total Answers: 99

Location: Mali
Member since Thu, Jul 9, 2020
4 Years ago
;