Verwijder individuele bestanden wanneer meerdere bestanden worden geselecteerd met bestandsinvoer

Is het mogelijk om individuele bestanden uit de lijst met te uploaden bestanden te verwijderen wanneer de gebruiker meerdere bestanden mag selecteren? Ik heb bijvoorbeeld een invoer die er ongeveer zo uitziet:

<input type = 'file' name = 'file' id = 'file' multiple = 'multiple' />

En de gebruiker selecteert 4 foto's, 1.jpg, 2.jpg, 3.jpg en 4.jpg. Is het mogelijk om 4.jpg te verwijderen, omdat de gebruiker van gedachten is veranderd en niet wil uploaden?

5
imgdiode.com/MiB9QK Het bestand moet worden verwijderd wanneer op de rode "x" wordt geklikt.
toegevoegd de auteur Lukas, de bron
Nee, ik gebruik jQuery's .val() om de naam van de bestanden te krijgen en deze weer te geven.
toegevoegd de auteur Lukas, de bron
Dat zou kunnen, maar daar blijf ik liever vanaf als dat mogelijk is.
toegevoegd de auteur Lukas, de bron
Ja, ik dacht eraan om dat te doen als al het andere faalt.
toegevoegd de auteur Lukas, de bron
Sorry, om te verwijderen door wat precies gebruikersactie? Als hij opnieuw op dat invoerbesturingselement klikt, kiest hij mogelijk opnieuw de lijst met bestanden.
toegevoegd de auteur raina77ow, de bron
Houd er rekening mee dat browsers meestal zeer restrictief zijn over wat er daadwerkelijk door JavaScript kan worden gewijzigd in de regelwaarde invoer = bestand .
toegevoegd de auteur raina77ow, de bron
Hoe de namen van de bestanden hier zijn geschreven? Zijn deze bestanden al geüpload?
toegevoegd de auteur raina77ow, de bron
U hebt het over het gebruik van Javascript, toch? Je zou het moeten taggen als dat het geval is (en ik ken geen andere manier om het anders aan te pakken).
toegevoegd de auteur Jared Farrish, de bron
Waarom genereer je na de laatste keer geen nieuw element voor het uploaden van bestanden en laat je ze de individuele uploadelementen verwijderen zoals ze willen? Dat lijkt het gemakkelijkst, tenzij het antwoord hierop dom eenvoudig is.
toegevoegd de auteur Jared Farrish, de bron
Als u jQuery gebruikt, zijn er waarschijnlijk bibliotheken die hierbij kunnen helpen. Ik zie het nut van het uploaden van meerdere bestanden. Als je het niet letterlijk kunt doen, kun je ze een lijst aanbieden en een bestand "uitzetten" in store , dat je vervolgens op de server bij het uploaden negeert. Met andere woorden, ze markeren het voor "negeren" en de server legt het daarom weg.
toegevoegd de auteur Jared Farrish, de bron

1 antwoord

Het korte antwoord zou gewoon 'Nee' zijn. Het is niet mogelijk om de waarde van bestandsinvoer te wijzigen element uit een script: anders zou het een gat in het beveiligingslek van een mammoet zijn. En ik kan u verzekeren: sommige browsers (IE, dat is ongeveer u!) Worden HEEL kieskeurig als het gaat om bestandsingangen.

Maar u kunt de volgende aanpak gebruiken: laat gebruikers zoveel bestanden uploaden als u en zij willen (het is echter verstandig om een ​​aantal limieten in te stellen), maar plaats ze in een tijdelijke opslag. Alleen wanneer gebruikers daadwerkelijk hun wens kenbaar maken om de entiteit waaraan deze bestanden zijn gekoppeld, op te slaan, verplaatst u deze bestanden naar een permanente status.

Of misschien is het tijd om na te denken over het gebruik van sommige fallback-mechanismen, Flash of iets dergelijks. In feite is er nog een andere reden om het te doen: IE8 ondersteunt het multiple -attribuut op de bestandskiezer niet.

1
toegevoegd