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
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/>