Prezentacja.
Prześlij pliki na serwer WWW; proste, jak trudne może być? Pewnie wielu to powie, ale ci, którzy dopiero zaczynają w tym świecie, z pewnością zastanawiali się, jak to się robi, po prostu chcę się do nich dostać, więc jeśli zaczynasz w PHP lub jesteś zaawansowanym użytkownikiem, który zgubił ten kod i nie chcę z niego skorzystać jeszcze raz napisz, to zapraszam do dalszej lektury, ponieważ w tym artykule udostępnię swój kod do szybkiego i łatwego wgrywania plików, do tego będę używał HTML5, PHP i dodam atrakcyjny akcent z boostrapem. W tym przypadku wyjaśnię, jak przesyłać obrazy .jpg.webp lub .png.webp, ale przy minimalnych zmianach możesz przesłać dokumenty, audio, a nawet wideo, jeśli chcesz.
Czego potrzebujemy?a) Komputer
b) Serwer lokalny do testowania i dostępu do bazy danych (używam XAMPP)
c) Edytor kodu (użyję wysublimowanego tekstu 3)
Krok 1
Wchodzę do katalogu htdocs Xampp i tworzę nowy folder, który nazywam „prześlij”.
POWIĘKSZAĆ
Wewnątrz tego utworzę kolejny o nazwie „pliki” i dodatkowy o nazwie „php”.
POWIĘKSZAĆ
Krok 2
Teraz w edytorze kodu stworzę nowy plik, który zapiszę jako index.php, który później będzie zawierał formularz html do wgrania plików.
POWIĘKSZAĆ
Krok 3
Dodam odnośniki online do boostrapu.
POWIĘKSZAĆ
Krok 4
Wewnątrz ciała stworzę, w tym a
POWIĘKSZAĆ
Krok 5
Teraz w środkuDodam skok samochodu
tytuł zi zacznę układać nasz mały formularz do przesłania …
POWIĘKSZAĆ
Zobaczysz, że przypisałem do etykiety metodę „POST”, a w akcji dodaliśmy znak zapytania „?” co sprawi, że przy wysyłaniu formularza jego wartości będą zwracane do tej samej strony, dodatkowo dodałem atrybut o nazwie „encytipe” z wartością „multipart/form-data” ten z reguły powinien być stosowany we wszystkich formularze, które wysyłają pliki .
Krok 6
Ponieważ mamy gotową etykietę, możemy dodać potrzebne nam pole i przycisk, który prześle formularz do przetworzenia.
W tym celu dodamy etykietęi będzie zawierać typ wejściowy „plik”, który będzie odpowiedzialny za przechwycenie pliku, który chcemy przesłać …
POWIĘKSZAĆ
Jak widać, nadaliśmy nazwę „plik” oraz klasę „form-control”, która należy do funkcji bootstrap i służy do nadawania prawidłowych odstępów między polami tekstowymi zawartymi w formularzu. Ze swojej strony dodajemy również atrybut „wymagany”, który uniemożliwi przesłanie formularza, jeśli to pole będzie puste.
Krok 7
Później dodamy etykietę jako dekorację, która pomoże nam narysować linię oddzielającą poprzednie wejście od przycisku, który wyśle formularz.
POWIĘKSZAĆ
Krok 8
Jak widać tuż pod etykietą umieściliśmy wejście typu „submit”, do którego dodajemy klasy boostrap „btn btn-primary center-block”, z których pierwsza pomaga nam nadać bardziej atrakcyjną formę naszemu przycisk, drugi ustawia go w podstawowym kolorze boostrapu czyli intensywnie niebieski, a trzeci służy do umieszczenia tego elementu z wyśrodkowaną regulacją, zauważ, że ten przycisk nazwaliśmy "góra".
Krok 9
Mamy już gotowy html, więc teraz napiszemy kilka linijek w php, które będą odpowiedzialne za przesyłanie naszych plików, w tym celu stworzymy nowy plik upload.php, który zapiszę w "php" folder, który tworzymy w kroku 2.
Krok 10
Pierwszą rzeczą, którą zrobimy w naszym pliku php, jest sprawdzenie, czy przycisk został naciśnięty
„Prześlij” i jeśli pole „plik” nie jest puste, w tym celu napiszemy następujące …
POWIĘKSZAĆ
Krok 11
Po zweryfikowaniu użyjemy pętli „foreach", aby uzyskać właściwości pliku, który zamierzamy przesłać. Jak wspomnieliśmy wcześniej, w tym przypadku będziemy mówić o obrazach w formacie .jpg.webp lub .png.webp.
POWIĘKSZAĆ
Krok 12
Stworzymy 2 zmienne o nazwach "$ file" i "$ destination", pierwsza będzie zawierała plik, który wgrywamy, a druga przypiszemy ścieżkę, pod którą zostanie zapisany i nazwę pod jaką będzie przechowywany , jak możesz sobie wyobrazićścieżkę do przechowywania Będzie to katalog "files", który został utworzony w kroku 2, natomiast nazwa pod jaką będzie przechowywana będzie pochodzić z tablicy $ FILES którą zbudowaliśmy w poprzednim kroku za pomocą foreach …
POWIĘKSZAĆ
Krok 13
Teraz musimy sprawdzić, czy przesyłany plik jest zgodny z żądanymi przez nas parametrami, wcześniej zaznaczyłem, że chcę wgrać obrazy w formacie .jpg.webp lub .png.webp, ale nadszedł moment, aby zostawić to zdefiniowane w naszym kodzie. Również jako miara osobista chcę, aby maksymalny rozmiar przesyłanych obrazów wynosił 2 MB, więc skorzystam z okazji, aby to wskazać, ale mimo to ten maksymalny rozmiar nie może być zdefiniowany w MB, więc będziemy musieli go przekonwertować na bajty …
POWIĘKSZAĆ
Skoro ustaliliśmy warunki, aby móc przetwarzać pliki, teraz musimy określić, co z nimi zrobimy. W tym przypadku chcę, aby te pliki zostały skopiowane do folderu „files”, ale chcę również, aby ścieżka do każdego pliku była przechowywana w bazie danych, aby później móc utworzyć listę lub galerię z tymi plikami.
To powiedziawszy, będziemy musieli utworzyć bazę danych, a w niej tabelę z polami zawierającymi ścieżkę każdego pliku, plik połączenia z tą bazą danych i oczywiście dołączyć do naszego pliku upload.php instrukcję SQL, która wstawia ścieżkę każdego pliku w bazie danych. Idź po to!.
Krok 14
Przy aktywnym xampp przechodzimy do naszej przeglądarki i wpisujemy adres "localhost / phpmyadmin" po wpisaniu nazwy użytkownika i hasła przystąpimy do tworzenia nowej bazy danych, nazwę ją "upload" i przypiszę dopasowanie "utf8_spanish_ci" .
POWIĘKSZAĆ
Krok 15
Wewnątrz utworzymy tabelę, którą będę nazywał „trasami” z tylko 2 kolumnami, identyfikatorem automatycznego zwiększania i drugą o nazwie trasa typu varchar.
POWIĘKSZAĆ
POWIĘKSZAĆ
Mamy już bazę danych i potrzebną nam tabelę, ale teraz musimy połączyć się z tą bazą danych, w tym celu przejdę do mojego edytora kodu i utworzę 2 nowe pliki i zapiszę je jako "config.php" i "connection.php" w środku folder php, który już mamy.
POWIĘKSZAĆ
POWIĘKSZAĆ
Krok 16
Teraz wrócimy do naszego pliku „upload.php” i umieścimy w nim plik „connection.php”
POWIĘKSZAĆ
Krok 17
Następnie dodamy funkcję, aby wgrywany przez nas plik został skopiowany do katalogu "files" i wstawimy ścieżkę lub link do tego pliku w bazie danych. Następnie możemy dodać komunikat potwierdzający, jeśli wszystko pójdzie dobrze, oraz komunikat ostrzegawczy w przypadku, gdy nie przesyłamy prawidłowego typu pliku lub przekracza on maksymalny limit MB.
POWIĘKSZAĆ
Krok 18
Wrócimy do naszego pliku „index.php” i po tagu zamykającym „” umieścimy dołączenie do pliku upload.php
POWIĘKSZAĆ
Krok 19
Mamy już gotowy nasz kod, utworzono bazę danych i skonfigurowano połączenie, teraz zobaczmy jaki jest wynik i sprawdźmy czy działa poprawnie.
Podobał Ci się i pomógł ten samouczek?Możesz nagrodzić autora, naciskając ten przycisk, aby dać mu pozytywny punkt
Czy ten samouczek ci pomógł?
Jeśli niePomóż ulepszyć ten samouczek!
Czy uważasz, że możesz poprawić lub ulepszyć ten samouczek? Możesz wysłać swoje wydanie ze zmianami, które uznasz za przydatne.0 użytkowników edytowało ten samouczek. Edytuj i zostań uznanym ekspertem!
Edytuj ten samouczek
PODOBNE ĆWICZENIA
Przechowuj pliki w polach BLOB za pomocą PHP i MySQLGenerowanie plików PDF za pomocą PHP
8 komentarzy
Dawid Sanz
29 sierpnia 2015 23:34Bardzo podobał mi się samouczek, bardzo ciekawie jest wiedzieć, jak przesyłać pliki za pomocą PHP. Dzięki Ronny
- Raport
Ronny Bonillo
30 sierpnia 2015 00:50Nie ma za co David, mam nadzieję, że ci się przyda… Pozdrowienia…
- Raport
Ruben Gandia
03 wrz 2015 18:45
Ronny, użyłem twojego samouczka, aby poprawić błąd, który popełniłem podczas przesyłania plików przez PHP. Po prostu łączę się, aby dać ci Dziękuję Ci i że ja również oznaczyłem Ciebie Idź.
- Raport
Ronny Bonillo
03 wrz 2015 18:47
Nie ma za co Ruben, dzięki za śledzenie mnie! Cieszę się, że okazało się to przydatne …
- Raport
Diego Agudelo Jimenez
16 lutego 2016 22:56
Doskonała pomoc
- Raport
Ronny Bonillo
wto 02 2016 06:24;-)
- Raport
MartinPm
05 sierpnia 2016 20:16
Co powiesz na Ronny'ego, czy możesz mi pomóc, mam ten błąd …
Uwaga: Niezdefiniowany indeks: plik w C:\xampp\htdocs\upload\php\upload.php on line3
Ostrzeżenie: Nieprawidłowy argument podany dla foreach() inC: \ xampp \ htdocs \ upload \ php \ upload.php w wierszu 3
Uwaga: Niezdefiniowany indeks: plik w C:\xampp\htdocs\upload\php\upload.php on line7
Uwaga: Niezdefiniowany indeks: plik w C:\xampp\htdocs\upload\php\upload.php on line8
Uwaga: Niezdefiniowany indeks: plik w C:\xampp\htdocs\upload\php\upload.php on line10
- Raport
josenumis
gru2021-202221-2022 17:23Witam, skopiowałem tak, jak jest, ale zmieniam nazwę serwera itp (który nie jest lokalny) i nie przesyła plików lub daje mi błąd (pozwala mi wybrać plik), jeśli go nie zaznaczył, mówi mnie to wybrać ale jak wyślę na serwer to nic nie robi czy ktoś może mi przysłać kody żeby sprawdzić czy coś jest nie tak)? Myślę, że wszystko jest w porządku. Mój e-mail to [email protected] bardzo dziękuję.
- Raport
- Utwórz kontoZarejestruj się ZA DARMO, aby mieć swoje konto SolveticZarejestruj konto
- ZidentyfikowaćMasz już konto? Podpisz tutajZidentyfikuj mnie na moim koncie
Informacja
- Opublikowany 27 sierpnia 2015 21:10
- Zaktualizowano 28 sierpnia 2015 08:21
- Odwiedziny 15,8 tys
- PoziomZaawansowany
Najnowsze samouczki PHP
- Jak zainstalować pHpMyAdmin na Ubuntu 20.04
- Zainstaluj Laravel PHP Framework CentOS 8 z NGINX
- Zainstaluj i skonfiguruj OPcache pod kątem wydajności PHP w CentOS 7
- Jak zainstalować Laravel PHP Web Framework na CentOS