Mam doświadczenie w robieniu tego z przesyłaniem pojedynczych plików przy użyciu <input type="file">
. Jednak mam problemy z przesyłaniem więcej niż jednego na raz.
Na przykład chciałbym móc wybrać serię obrazów, a następnie przesłać je na serwer, wszystkie naraz.
Byłoby wspaniale, jeśli to możliwe, użyć kontrolki wejścia pojedynczego pliku.
Czy ktoś wie, jak to osiągnąć? Dzięki!
Odpowiedzi:
Jest to możliwe w HTML5 . Przykład (PHP 5.4):
Oto, jak to wygląda w przeglądarce Chrome po wybraniu 2 elementów w oknie dialogowym plików:
A tak to wygląda po kliknięciu przycisku „Prześlij”.
To tylko szkic w pełni działającej odpowiedzi. Zobacz Podręcznik PHP: Obsługa przesyłania plików, aby uzyskać więcej informacji na temat prawidłowej, bezpiecznej obsługi przesyłania plików w PHP.
źródło
multiple="multiple"
?name="file[]"
.). Próbowałem edytować odpowiedź , ale została odrzucona.Jest kilka rzeczy, które musisz zrobić, aby utworzyć przesyłanie wielu plików, w rzeczywistości jest to dość podstawowe. Nie musisz używać Java, Ajax, Flash. Po prostu zbuduj normalny formularz przesyłania plików, zaczynając od:
Następnie klucz do sukcesu;
<input type="file" name="file[]" multiple />
NIE zapomnij o tych nawiasach! W post_upload.php spróbuj wykonać następujące czynności:
Zauważ, że otrzymujesz tablicę z danymi tmp_name, co oznacza, że możesz uzyskać dostęp do każdego pliku za pomocą trzeciej pary nawiasów z przykładem pliku „numer”:
Możesz użyć php count (), aby policzyć liczbę wybranych plików. Goodluck widdit!
źródło
foreach
oświadczeniem, bez konieczności znajomości liczby przesłanych plików ...Pełne rozwiązanie w przeglądarce Firefox 5:
źródło
<html> <head> </head> <body> <form name="uploader" id="uploader" action="multifile.php" method="POST" enctype="multipart/form-data" > <input id="infile" name="infile[]" type="file" onBlur="submit();" multiple="true" ></input> </form>
Jeśli chcesz wybrać wiele plików z okna dialogowego wyboru plików, które wyświetla się po wybraniu przeglądania, masz przeważnie pecha. Będziesz musiał użyć apletu Java lub czegoś podobnego (myślę, że jest taki, który używa małego pliku flash, zaktualizuję, jeśli go znajdę). Obecnie pojedynczy plik wejściowy pozwala na wybór tylko jednego pliku.
Jeśli mówisz o korzystaniu z wielu plików wejściowych, nie powinno być dużej różnicy w stosunku do jednego. Napisz kod, a ja postaram się pomóc dalej.
Aktualizacja: jest jedna metoda korzystania z pojedynczego przycisku „przeglądaj”, który korzysta z technologii Flash. Nigdy nie korzystałem z tego osobiście, ale sporo o tym czytałem. Myślę, że to twoja najlepsza szansa.
http://swfupload.org/
źródło
w pierwszej kolejności należy wykonać następującą postać:
to prawda. teraz dodaj ten kod pod kodem formularza lub na dowolnej stronie, którą chcesz
to łatwe ... wykończenie
źródło
Jeśli używasz wielu pól wejściowych, możesz ustawić nazwę = "plik []" (lub dowolną inną nazwę). Spowoduje to umieszczenie ich w tablicy podczas ich przesyłania (
$_FILES['file'] = array ({file_array},{file_array]..)
)źródło
Korzystanie z pętli FOR
Korzystanie z pętli FOREACH
źródło
stworzyłem funkcję php, która służy do przesyłania wielu obrazów, ta funkcja może przesyłać wiele obrazów w określonym folderze, a także może zapisywać rekordy w bazie danych w następującym kodzie $ arrayimage to tablica obrazów wysyłana za pośrednictwem notatki formularza że nie pozwoli to na przesyłanie wielu plików, ale musisz utworzyć inne pole wejściowe o tej samej nazwie, ponieważ możesz ustawić dynamiczne dodawanie pola usuwania pliku po kliknięciu przycisku.
$ dir to katalog w którym chcesz zapisać obraz $ pola to nazwa pola które chcesz przechowywać w bazie danych
pole bazy danych musi być w formacie tablicowym przykład jeśli masz bazę danych i nazwę pola, taką jak id, nazwa, adres, musisz opublikować dane takie jak
a następnie przekaż to pole do pól funkcji $
$ table to nazwa tabeli, w której chcesz przechowywać dane.
// Klasa imageFunctions kończy się tutaj
możesz wypróbować ten kod do wstawiania wielu obrazów z jego rozszerzeniem ta funkcja jest stworzona do sprawdzania plików graficznych możesz zamienić listę rozszerzeń dla poszczególnych plików w kodzie
źródło
odpowiedź częściowa: gruszka HTTP_UPLOAD może być przydatna http://pear.php.net/manual/en/package.http.http-upload.examples.php
jest pełny przykład dla wielu plików
źródło