javascript - that - Error al ejecutar ''createObjectURL'' en ''URL'':
url.createobjecturl filename (2)
Mostrar el error de abajo en Safari.
Failed to execute ''createObjectURL'' on ''URL'': No function was found that matched the signature provided.
Mi código es:
function createObjectURL(object) {
return (window.URL) ? window.URL.createObjectURL(object) : window.webkitURL.createObjectURL(object);
}
Este es mi código para la imagen:
function myUploadOnChangeFunction() {
if (this.files.length) {
for (var i in this.files) {
if (this.files.hasOwnProperty(i)) {
var src = createObjectURL(this.files[i]);
var image = new Image();
image.src = src;
imagSRC = src;
$(''#img'').attr(''src'', src);
} }
} }
El problema es que las claves proporcionadas en el bucle no se refieren al índice del archivo.
for (var i in this.files) {
console.log(i);
}
La salida del código anterior es:
0
length
item
Pero lo que se esperaba era:
0
1
2
etc...
Entonces el error ocurre cuando el navegador intenta ejecutarse, por ejemplo:
window.URL.createObjectURL(this.files["length"])
Sugiero implementación basada en el siguiente código:
var files = this.files;
for (var i = 0; i < files.length; i++) {
var file = files[i],
src = (window.URL || window.webkitURL).createObjectURL(file);
...
}
Espero que esto pueda ayudar a alguien.
¡Saludos!
Experimenté el mismo error, cuando pasé a createObjectURL
datos crudos:
window.URL.createObjectURL(data)
Tiene que ser objeto Blob
, File
o MediaSource
, no datos en sí. Esto funcionó para mí:
var binaryData = [];
binaryData.push(data);
window.URL.createObjectURL(new Blob(binaryData, {type: "application/zip"}))
Consulte también el MDN para obtener más información: https://developer.mozilla.org/en-US/docs/Web/API/URL/createObjectURL