![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 4 291 Pomógł: 829 Dołączył: 14.02.2009 Skąd: łódź Ostrzeżenie: (0%) ![]() ![]() |
Piszę upload zdjęć, gdzie można ich wrzucić kilka za jednym razem. Np. nie więcej niż 3.
Formularz: Problem pojawia się z wysyłaniem kilku plików. Walidacja rozmiaru, tworzenie miniaturki etc. już mam - w pojedynczym pliku. Nie wiem natomiast jak to zrobić, aby cała procedura obejmowała wszystkie wrzucone pliki... Jak zrobić multi upload? Czego użyć? Szukałem w sieci, ale wszystko mało jasne. |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
1. Utwórz sobie testowy skrypt o treści:
2. Utwórz sobie formularz do wysłania pojedynczego pliku prowadzący do skryptu z punktu pierwszego. 3. Utwórz sobie formularz do wysłania wielu plików prowadzący do skryptu z punktu pierwszego. 4. Porównaj wyniki działania obu. |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 4 291 Pomógł: 829 Dołączył: 14.02.2009 Skąd: łódź Ostrzeżenie: (0%) ![]() ![]() |
Hmm raczej chodzi mi o użycie jakiejś funkcji, która powiąże procedurę wrzucania dla wszystkich plików.
|
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 859 Pomógł: 177 Dołączył: 29.10.2009 Ostrzeżenie: (0%) ![]() ![]() |
To pokaz kod dla pojedynczego pliku to się zrobi
![]()
I myśle, że tak będzie najszybciej. Ten post edytował aras785 28.07.2013, 17:47:59 |
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 4 291 Pomógł: 829 Dołączył: 14.02.2009 Skąd: łódź Ostrzeżenie: (0%) ![]() ![]() |
Cały kod:
Więc to co podałeś wklepać do kodu? |
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 859 Pomógł: 177 Dołączył: 29.10.2009 Ostrzeżenie: (0%) ![]() ![]() |
To zależy czy chcesz wgrać pliki na serwer gdy wszystkie przejdą poprawnie walidacje (rozmiar itd), czy też może być że ten co jest ok to się wgrywa?
|
|
|
![]()
Post
#7
|
|
![]() Grupa: Zarejestrowani Postów: 4 291 Pomógł: 829 Dołączył: 14.02.2009 Skąd: łódź Ostrzeżenie: (0%) ![]() ![]() |
Wszystkie muszą przejść proces walidacji, który podałem w kodzie:
-sprawdzenie wagi -sprawdzenie formatu -sprawdzenie rozmiaru i ew. pomniejszenie Edit: Napisałem kod, który działa. Jak tylko zrobić, żeby można było wgrać nie więcej niż np. 3 pliki?
Próbowałem coś w stylu count($_FILES['plik']['tmp_name'][$i]) ale na darmo Ten post edytował TursoN 29.07.2013, 01:23:22 |
|
|
![]()
Post
#8
|
|
![]() Grupa: Zarejestrowani Postów: 859 Pomógł: 177 Dołączył: 29.10.2009 Ostrzeżenie: (0%) ![]() ![]() |
Bo sprawdza się tak: count($_FILES['plik']['tmp_name'])
|
|
|
![]()
Post
#9
|
|
![]() Grupa: Zarejestrowani Postów: 4 291 Pomógł: 829 Dołączył: 14.02.2009 Skąd: łódź Ostrzeżenie: (0%) ![]() ![]() |
Niby działa. Widzicie jakiś błąd?
|
|
|
![]()
Post
#10
|
|
![]() Grupa: Zarejestrowani Postów: 859 Pomógł: 177 Dołączył: 29.10.2009 Ostrzeżenie: (0%) ![]() ![]() |
u mnie chodzi. Stwórz folder: img
![]() |
|
|
![]()
Post
#11
|
|
![]() Grupa: Zarejestrowani Postów: 4 291 Pomógł: 829 Dołączył: 14.02.2009 Skąd: łódź Ostrzeżenie: (0%) ![]() ![]() |
Mam kolejny problem. Mianowicie liczba plików ma być mniejsza bądź równa 3 ale też większa od 0 rzecz jasna.
Zmieniłem więc warunek z powyższego kodu na:
Ale nie działa w przypadku braku plikow. Jesli wrzuce wiecej niz 3 wywala blad wiec ok. Niestety jak nie dodam zadnego to pusta strona |
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 559 Pomógł: 93 Dołączył: 4.03.2008 Skąd: Olsztyn Ostrzeżenie: (0%) ![]() ![]() |
error_reporting i display_errors, zobacz jaki to błąd
-------------------- |
|
|
![]()
Post
#13
|
|
![]() Grupa: Zarejestrowani Postów: 4 291 Pomógł: 829 Dołączył: 14.02.2009 Skąd: łódź Ostrzeżenie: (0%) ![]() ![]() |
Całość kodu wygląda jak w poście #9.
W mam wyłączone wyświetlanie błędów. Kiedy włączę jest: Cytat Notice: Undefined offset: 1 in test2.php on line 11 Notice: Undefined offset: 2 in test2.php on line 11 gdzie linia 11 to właśnie kod, który wyżej podałem. Te błędy wyświetlają się, kiedy nie prześlę żadnego pliku. Tylko że to wygląda tak:
więc is_uploaded_file nie powinno się de facto wykonać skoro warunek dot. liczby plików nie jest spełniony |
|
|
![]()
Post
#14
|
|
![]() Grupa: Zarejestrowani Postów: 859 Pomógł: 177 Dołączył: 29.10.2009 Ostrzeżenie: (0%) ![]() ![]() |
Pozdrawiam Ten post edytował aras785 30.07.2013, 14:08:35 |
|
|
![]()
Post
#15
|
|
Grupa: Zarejestrowani Postów: 559 Pomógł: 93 Dołączył: 4.03.2008 Skąd: Olsztyn Ostrzeżenie: (0%) ![]() ![]() |
Ponieważ w tablicy FILES te pliki dalej są, i ich ilość jest zgodna z tym ile pól jest w formularzu. Musisz sprawdzać czy klucz error nie jest równy UPLOAD_ERR_NO_FILE, np:
i w warunku użyjesz $ile. Natomiast dalej w for warunek działania powinien być $i < $ile -------------------- |
|
|
![]()
Post
#16
|
|
![]() Grupa: Zarejestrowani Postów: 4 291 Pomógł: 829 Dołączył: 14.02.2009 Skąd: łódź Ostrzeżenie: (0%) ![]() ![]() |
@aras785, Twój kod działał idealnie na testach. Gdy połączyłem go z innym czyli tak jak miało być, pojawiły się błędy.
Wybieram 2 pliki *.jpg i klikam submit: Cytat Notice: Undefined index: plik in D:\Program Files (x86)\xampp\htdocs\ogl\include\dodaj2.php on line 37 czyli Cytat Warning: array_sum() expects parameter 1 to be array, null given in D:\Program Files (x86)\xampp\htdocs\ogl\include\dodaj2.php on line 37 czyli Cytat Notice: Undefined index: plik in D:\Program Files (x86)\xampp\htdocs\ogl\include\dodaj2.php on line 39 Za duzo czyli A całość kodu:
|
|
|
![]()
Post
#17
|
|
![]() Grupa: Zarejestrowani Postów: 859 Pomógł: 177 Dołączył: 29.10.2009 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#18
|
|
![]() Grupa: Zarejestrowani Postów: 4 291 Pomógł: 829 Dołączył: 14.02.2009 Skąd: łódź Ostrzeżenie: (0%) ![]() ![]() |
Już sam rozkminiłem.
Ten post edytował TursoN 1.08.2013, 00:31:27 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 21.08.2025 - 09:49 |