A URL that was created from a JavaScript Blob
can not be converted to a "normal" URL.
A blob:
URL does not refer to data the exists on the server, it refers to data that your browser currently has in memory, for the current page. It will not be available on other pages, it will not be available in other browsers, and it will not be available from other computers.
Therefore it does not make sense, in general, to convert a Blob
URL to a "normal" URL. If you wanted an ordinary URL, you would have to send the data from the browser to a server and have the server make it available like an ordinary file.
It is possible convert a blob:
URL into a data:
URL, at least in Chrome. You can use an AJAX request to "fetch" the data from the blob:
URL (even though it's really just pulling it out of your browser's memory, not making an HTTP request).
Here's an example:
var blob = new Blob(["Hello, world!"], { type: 'text/plain' });_x000D_
var blobUrl = URL.createObjectURL(blob);_x000D_
_x000D_
var xhr = new XMLHttpRequest;_x000D_
xhr.responseType = 'blob';_x000D_
_x000D_
xhr.onload = function() {_x000D_
var recoveredBlob = xhr.response;_x000D_
_x000D_
var reader = new FileReader;_x000D_
_x000D_
reader.onload = function() {_x000D_
var blobAsDataUrl = reader.result;_x000D_
window.location = blobAsDataUrl;_x000D_
};_x000D_
_x000D_
reader.readAsDataURL(recoveredBlob);_x000D_
};_x000D_
_x000D_
xhr.open('GET', blobUrl);_x000D_
xhr.send();
_x000D_
data:
URLs are probably not what you mean by "normal" and can be problematically large. However they do work like normal URLs in that they can be shared; they're not specific to the current browser or session.
~ Answered on 2013-04-23 21:57:31