Przesyłanie plików jest powszechnym zadaniem aplikacji internetowych. Do przesłania są wymagane różne typy plików na podstawie aplikacji. Pliki obrazu, pliki tekstowe, pliki PDF, pliki XML itp. można przesłać za pomocą skryptu PHP. Jeden lub więcej plików można przesłać przez PHP. Istnieje kilka dyrektyw PHP w PHP.ini Plik konfiguracyjny i wbudowane funkcje PHP związane z przesłaniem plików, które są omówione w tym samouczku. HTML ma określony atrybut w znaczniku formularza dla zadań przesyłania plików, to znaczy Enctype.
Dyrektywy PHP dla przesyłania plików
Dyrektywa PHP | Zamiar |
---|---|
plik_uploads | Wartość tej dyrektywy musi być NA Aby przesłać plik za pomocą skryptu PHP. Domyślna wartość tej dyrektywy to NA. |
upload_tmp_dir | Służy do ustawienia katalogu tymczasowego, w którym plik zostanie przesłany. |
upload_max_fileSize | Służy do ustawienia maksymalnego rozmiaru pliku, który można przesłać. |
max_file_uploads | Służy do ustawienia liczby plików, które można przesłać. |
post_max_size | Służy do ustawiania maksymalnego rozmiaru danych postu, a wartość tej dyrektywy musi być większa niż wartość dyrektywy upload_max_fileSize, ponieważ plik jest przesyłany przez żądanie POST. |
max_input_time | Służy do ustawienia maksymalnego czasu na odczyt danych pliku przesyłania. |
Max_Execution_Time | Służy do ustawiania maksymalnej ilości czasu w sekundach, aby wykonać skrypt do przesłania pliku. |
pamięć_limit | Służy do ustawienia maksymalnego rozmiaru pamięci wymaganego do wykonywania skryptu PHP do przesłania pliku. |
Funkcje PHP dla przesyłania plików
Dwie wbudowane funkcje są używane głównie w PHP do przesłania pliku, który jest wymieniony poniżej.
A. is_uploaded_file ()
Służy do sprawdzenia, czy plik jest przesyłany przez post HTTP, który pomaga zapobiec atakowi złośliwego użytkownika.
B. Move_uploaded_file ()
Służy do przenoszenia przesłanego pliku do lokalizacji serwera WWW. Ta funkcja zwróci true, jeśli plik zostanie przesłany i pomyślnie przeniesiony.
Zmienna przesyłania pliku PHP
Zmienna $ _files macierzy przechowuje wszystkie informacje związane z przesyłaniem pliku na serwer. Jest to zmienna superglobalna PHP, która jest dostępna w dowolnym miejscu od skryptu. Zawiera pięć rodzajów informacji: nazwa pliku, typ, rozmiar, tymczasowa nazwa pliku i błędy związane z przesłaniem pliku. Cel każdej wartości tablicy $ _file został wspomniany poniżej. Załóżmy, że nazwa nazwy pola przesyłania to 'wgrywać' Tutaj.
A. $ _Files ['upload'] ['Nazwa']
Służy do uzyskania oryginalnej nazwy pliku, która została przesłana przez komputer klienta.
B. $ _Files ['upload'] ['tmp_name']
Służy do uzyskania tymczasowej nazwy pliku, która została tymczasowo przechowywana na serwerze.
C. $ _Files ['upload'] ['type']
Służy do uzyskania typu MIME przesłanego pliku.
D. $ _Files ['upload'] ['rozmiar']
Służy do uzyskania rozmiaru przesłanego pliku w bajtach.
mi. $ _Files ['upload'] ['error']
Służy do uzyskania kodu błędu związanego z zadaniem przesyłania. Zmienna może zawierać dowolny z 7 rodzajów wartości wymienionych poniżej.
Kod błędu | Opis |
---|---|
1- upload_err_ok | Generuje, gdy plik pomyślnie przesyła. |
2- upload_err_ini_size | Generuje, jeśli rozmiar pliku przekracza wartość upload_max_fileSize dyrektywa zdefiniowana w PHP.plik INI. |
3- upload_err_partial | Generuje, jeśli rozmiar pliku przekracza wartość dyrektywy MAX_FILE_SIZE, która jest zdefiniowana w formie HTML. |
4- upload_err_no_file | Generuje, jeśli nie zostanie przesłany żaden plik. |
5- upload_err_no_tmp_dir | Generuje, jeśli nie brakuje żadnego katalogu tymczasowego. |
6- upload_err_cant_write | Generuje, jeśli nie ma zgody na zapis w lokalizacji serwera. |
7- upload_err_extension | Generuje, jeśli rozszerzenie PHP zatrzyma zadanie przesyłania. |
Przesyłanie pliku za pomocą PHP
W tej części samouczka pokazano różne przykłady przesyłania pliku za pomocą skryptu PHP.
Przykład 1: Prześlij dowolny typ pliku
Możesz przesłać plik w bieżą. Musisz utworzyć folder w lokalizacji serwera, aby przesłać plik w określonym folderze przed wykonaniem skryptu PHP. Utworzyłem folder o nazwie 'przesyła wewnątrz folderu roboczego. Utwórz plik PHP z następującym skryptem, który prześle plik dowolnego typu wewnątrz 'przesyła teczka. Formularz HTML z polem typu pliku i przycisk przesyłania został użyty w skrypcie do wyboru pliku z komputera klienta do przesłania. Jeśli 1 jest generowane jako kod błędu po przesłaniu pliku, plik jest przesłany pomyślnie. Następnie Move_upload_file () Funkcja została użyta do przeniesienia przesłanego pliku do lokalizacji serwera. Komunikat o sukcesie zostanie wydrukowany, jeśli plik zostanie pomyślnie przesłany do lokalizacji serwera; W przeciwnym razie zostanie wyświetlony komunikat o błędzie.
// Sprawdź, czy dowolny plik jest wybrany lub niePlik jest przesłany pomyślnie.
';;Błąd przesyłanie pliku.
'. $ _Files ['uploadFile'] ['błąd']. '
Błąd przesyłanie pliku.
'. $ _Files ['uploadFile'] ['błąd']. '
Przesyłanie pliku za pomocą PHP
Wyjście
Następujące dane wyjściowe pojawi się, jeśli skrypt zostanie wykonywany z serwera WWW.
Kliknij na Przeglądać przycisk, aby wybrać plik do przesłania i naciśnij przycisk Prześlij, aby przesłać plik do serwera.
Poniższa wiadomość pojawi się, jeśli plik zostanie pomyślnie przesłany.
Przykład 2: Prześlij plik określonego typu i rozmiaru
W tym przykładzie pokazano sposób przesłania pliku za pomocą osobnego pliku HTML i. Utwórz plik HTML z następującym skryptem, aby wyświetlić formularz do przesłania pliku.
uploadForm.html
Przesyłanie pliku JPEG za pomocą PHP
Utwórz skrypt PHP z następującym skryptem, który prześle tylko plik JPEG, a rozmiar będzie mniejszy niż 300000 bajtów. Typ i rozmiar pliku zostały odczytane za pomocą $ _files ['uploadFile'] ['type'] i $ _files ['uploadFile'] ['size']]. Komunikat o sukcesie pojawi się, jeśli przesłany typ i rozmiar pliku pasują do kryteriów zdefiniowanych w warunku „jeśli”; W przeciwnym razie zostanie wyświetlony komunikat o błędzie.
upload2.php
// Sprawdź, czy dowolny plik jest wybrany lub niePlik jest przesłany pomyślnie.
';;Błąd przesyłanie pliku.
'. $ _Files ['uploadFile'] ['błąd']. '
Typ lub rozmiar pliku nie jest obsługiwany.
';;Błąd przesyłanie pliku.
'. $ _Files ['uploadFile'] ['błąd']. '
Wyjście
W następnym wyjściu, kwiat.png Wybrano plik, który nie jest plik JPEG:
Następujące wyjście pojawi się po naciśnięciu Wgrywać przycisk:
Tutaj kwiat1.Plik JPEG został wybrany, który jest plik JPEG.
Teraz następujące wyjście pojawią się po naciśnięciu Wgrywać przycisk:
Przykład 3: Sprawdź plik przed przesłaniem
Utwórz plik PHP z następującym skryptem, który używa is_uploaded_file () funkcja, aby sprawdzić, czy plik jest przesyłany przez post HTTP przed przesunięciem pliku do serwera. Skrypt prześle tylko plik tekstowy i wydrukuje zawartość pliku tekstowego po pomyślnym przesłaniu pliku.
// Sprawdź, czy jakikolwiek plik jest wybrany, czy niePrzesyłanie pliku za pomocą PHP
Wyjście
W następnym wyjściu wybrano plik tekstowy do przesłania:
Treść pliku została wyświetlona na wyjściu po pomyślnym przesłaniu pliku.
Wniosek
Zadanie przesyłania pliku jest powszechnym wymogiem dla każdej aplikacji internetowej. Zastosowania zmiennej przesyłania pliku i wbudowanych funkcji PHP zostały pokazane w tym samouczku za pomocą wielu przykładów przesyłania plików. Jeśli chcesz, możesz przesłać więcej niż jeden plik na raz, używając skryptu PHP, który jest omawiany w tym samouczku. Możesz także przesłać folder zawierający wiele plików za pomocą skryptu PHP.