2012-06-23 9 views
5

Czy możliwe jest usunięcie pojedynczych plików z listy plików do przesłania, gdy użytkownik może wybrać wiele plików? Na przykład, mam wejście, który wygląda trochę tak:Usuwanie pojedynczych plików po wybraniu wielu plików przy wprowadzaniu pliku

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

a użytkownik wybiera 4 zdjęcia, 1.jpg, 2.jpg, 3.jpg 4.jpg i. Czy można usunąć plik 4.jpg, ponieważ użytkownik zmienił zdanie i nie chce go przesłać?

+0

Mówisz o używaniu JavaScript, prawda? Powinieneś oznaczyć ją jako taką, jeśli tak jest (i nie znam innego sposobu, aby to zrobić inaczej). –

+0

Przykro mi, aby usunąć przez co dokładnie działania użytkownika? Jeśli ponownie kliknie tę kontrolkę wejściową, może ponownie wybrać listę plików. – raina77ow

+0

Należy zauważyć, że przeglądarki są zwykle bardzo restrykcyjne co do tego, co może być faktycznie zmienione przez JavaScript w wartości kontrolnej 'input = file'. – raina77ow

Odpowiedz

1

Krótka odpowiedź byłaby po prostu "Nie". It's not possible, aby zmienić wartość elementu file input ze skryptu: w przeciwnym razie byłby to otwór zabezpieczający mamuta. I zapewniam cię: niektóre przeglądarki (IE, to o Tobie!) Stają się BARDZO wybredne, gdy zajmujesz się plikami wejściowymi.

Ale możesz zastosować następujące podejście: pozwól użytkownikom przesyłać tyle plików, ile Ty i oni chcą (rozsądne jest ustawienie pewnych limitów), ale umieść je w tymczasowym magazynie. Tylko wtedy, gdy użytkownicy faktycznie wyrażą chęć zapisania encji, do której załączone są te pliki, przenieś te pliki do stanu stałego.

A może nadszedł czas, aby pomyśleć o użyciu mechanizmów awaryjnych, Flasha lub czegoś w tym stylu. W rzeczywistości jest jeszcze jeden powód, aby to zrobić: IE8 nie obsługuje atrybutu multiple w selektorze plików.

Powiązane problemy