javascript jquery

archivo de entrada a la matriz javascript/jquery



(2)

Editar, actualizado

¿Cómo puedo eliminar un elemento específico en la variable de carga?

Si el resultado esperado es una matriz de objetos de archivo, se ajustará el enfoque para empalmar los elementos de la matriz desde el objeto de los files originales, y enviar la matriz empalmada como carga, en lugar de intentar "eliminar" los elementos del objeto de files originales y aún cargar el objeto de los files originales.

FileList objeto FileList no tiene el método .splice() . Intente utilizar .slice() , .call() para convertir files a Array , luego llame .splice() método .splice() en la matriz de objetos File , por ejemplo;

// `_files` : `File` object items from original `files` `FileList` // call `.splice()` on items that would be uploaded , // upload `_files` array - _not_ original `files` `FileList` object // e.g.; `_files`:`File` objects to _keep_ not "delete" from `files` var idstokeep = [0, 2]; // splice , keep first `2` files var _files = Array.prototype.slice.call(files).splice(idstokeep[0], idstokeep[1]);

¿ Ves cómo funciona Array.prototype.slice.call ()?

Alternativamente, utilice

item()

Devuelve un objeto File que representa el archivo en el índice especificado en la lista de archivos.

para devolver archivos en un index específico dentro de FileList

var files = e.target.files; // return `file` at `index` `1` var firstFile = files.item(1);

var upload = document.getElementById("file1"); upload.onchange = function(e) { var files = e.target.files; // https://developer.mozilla.org/en-US/docs/Web/API/FileList#item var firstFile = files.item(1); var idstokeep = [0, 2]; // keep first `2` files from `multiple` selection var _files = Array.prototype.slice.call(files).splice(idstokeep[0], idstokeep[1]); console.log(files, files.length , _files, _files.length , firstFile); };

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"> </script> <input class="file" id="file1" name="uploadedimages[]" type=''file'' multiple/>

Tengo un archivo de tipo de entrada donde pongo una variable en JavaScript donde quiero manipular los archivos.

HTML:

<input class="file" id="file1" name="uploadedimages[]" type=''file'' multiple/>

JavaScript:

var upload = document.getElementById(''file1''); upload.files.splice(idtoremove,1) //not working

¿Cómo puedo eliminar un elemento específico en la variable de carga? .He buscado que el archivo de tipo de entrada es de solo lectura y no puede manipularlo a menos que lo coloque en una matriz y cargue los archivos con ajax.

Estoy haciendo esto para subir a mi galería. Primero selecciono varias imágenes. luego habrá una vista previa de las imágenes antes de subirlas. También habrá una opción para eliminar una foto. Mi problema es. ¿Cómo puedo eliminar ese archivo de foto en el archivo de entrada? así que la posible solución es almacenar el archivo de entrada en la matriz y luego eliminar la foto que desea en la matriz y luego crear un formulario de datos para la matriz y cargarlo usando ajax


var upload = document.getElementById("file1"); upload.onchange = function(e) { var files = e.target.files; // https://developer.mozilla.org/en-US/docs/Web/API/FileList#item var firstFile = files.item(1); var idstokeep = [0, 2]; // keep first `2` files from `multiple` selection var _files = Array.prototype.slice.call(files).splice(idstokeep[0], idstokeep[1]); console.log(files, files.length , _files, _files.length , firstFile); };

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"> </script> <input class="file" id="file1" name="uploadedimages[]" type=''file'' multiple/>