the that rejection provided matched found filename createobjecturl chrome javascript createobject

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