Samouczek przesyłania pliku Laravel 9

Samouczek przesyłania pliku Laravel 9

Co to jest sprawdzanie poprawności plików w Laravel?

Walidacja Laravel jest sposobem na pełnienie roli walidacji. Możemy sprawdzić typ pliku, rozmiar pliku itp. Sprawdzanie poprawności pliku jest zwykle używane do uniknięcia niechcianych przesyłania plików na serwerze lub aplikacji.

Dzisiaj dowiemy się o przesłaniu pliku i przechowywaniu w Laravel 9.

Wymagania projektu podano poniżej:

  • Mysql 8.0+
  • Mariadb 10.2+
  • PHP 8.1

Oto przykład zdefiniowania pliku:

  1. Proces 1. Utwórz projekt Fileupload
  2. Proces 2. Fileupload Project Connection
  3. Proces 3. Utwórz model i kontroler w projekcie PLIKEPLOOD
  4. Proces 4. Uruchom i przetestuj projekt Fileupload

Proces 1. Utwórz projekt Fileupload

Krok 1 polega na uruchomieniu tego wiersza poleceń w celu zainstalowania Laravel 9 na naszym serwerze lub komputerze. W tym celu musimy otworzyć terminal Windows SSH w folderze.

Composer Create-Project Laravel/LaraVel Fileupload

Proces 2. Fileupload Project Connection

Otworzyć .Plik env w projekcie Fileupload i dodaj nową nazwę bazy danych, nazwę użytkownika i hasło.

Oto następujący kod:

Db_connection = mysql
Db_host = 127.0.0.1
Db_port = 3306
DB_DATABASE = Fileupload Batabase Nazwa
Db_username = Fileupload baza danych nazwa użytkownika
Db_password = Fileupload Hasło bazy danych

Proces 3. Utwórz model i kontroler w projekcie PLIKEPLOOD

Po podłączeniu bazy danych musimy utworzyć model i kontroler projektu Fileupload.

W tym celu musimy uruchomić następujące polecenie:

PHP Artisan Make: Model Fileupload -mc

Teraz przejdź do „Baza danych \ migracje \ 2022_07_11_074014_create_file_uploads_table.plik php ”. Ta nazwa może być inna po twojej stronie. Teraz musimy umieścić te dwa wiersze w pliku:

$ tabela-> string ('plik_name')-> nullable ();
$ tabela-> string ('file_path_location')-> nullable ();

Wygląda tak

Zwrot nowej klasy rozszerza migrację

Funkcja publiczna w górę ()

Schema :: „file_uploads”, funkcja (Blueprint $ tabela)
$ table-> id ();
$ tabela-> string ('plik_name')-> nullable ();
$ tabela-> string ('file_path_location')-> nullable ();
$ TABLE-> Timestamps ();
);

Funkcja publiczna w dół ()

Schema :: Dropifexists („file_uploads”);

;

Modyfikujemy nasz model pliku w „App \ Models \ FileUpload.php ”. Tam dodajemy nieruchomość wypełniającą. Kod pokazano poniżej:

APP APP APP APP \;
Użyj Illuminate \ Database \ eloquent \ Factories \ HASFactory;
Użyj Illuminate \ Database \ eloquent \ Model;
klasa Fileupload rozszerza model

Użyj HASFAFATORY;
Protected $ filebable = [
'Nazwa pliku',
„file_path_location”
];

Teraz musimy migrować tabelę do bazy danych, aby uruchomić to polecenie:

PHP Artisan migruje

Po zakończeniu migracji musimy utworzyć dwie funkcje. Jedna z funkcji jest przejście na stronę przesyłania, a drugą jest przesłanie pliku w katalogu i przechowywanie go w bazie danych.

Przejdź do „App \ http \ Controllers \ FileUploadController.plik php ”:

Teraz dodaj ten kod do kontrolera:

FILLEVIEW FUNKUTY PUBLICZNEJ (żądanie $ żądanie)

return View („plik-wypłata”);

A inna funkcja pokazano poniżej:

Funkcja publiczna przesyłacza (żądanie $ żądanie)

$ reguły = tablica (
„Załączanie” => ”MIMES: JPEG, PNG, JPG, GIF, SVG, PDF | Max: 1000”,
);
$ wiadomości = tablica (
„Załączanie” => ”Obraz potrzebuje mniej niż 1 MB.',
);
$ validator = Validator :: Make ($ request-> all (), $ reguły, $ messages);
if ($ validator-> fails ())
return Redirect ()-> trasa ('fileViews')-> z („sukces”, 'pomyślnie dodany');
return Redirect ()-> trasa („FileViews”)-> WitherRors ($ Validator);
w przeciwnym razie
$ imagename = time () . '.' . $ request-> załącznik-> rozszerzenie ();
// Usuń obraz przed przesłaniem
$ ścieżka = $ request-> załącznik-> ruch (public_path ('pamięć/załącznik/'), $ imagename);
$ DepartmentName ['plik_name'] = $ imagename;
$ DepartmentName ['file_path_location'] = $ ścieżka;
FileUpLoad :: Create ($ DepartmentName);
return Redirect ()-> trasa ('fileViews')-> z („error”, 'bez pliku dodanego');

W funkcji uploadthefile wykorzystaliśmy walidator.

Utworzyliśmy tę funkcję, aby przesłać widok. Dlatego musimy utworzyć widok w widoku Laravel w „Resources \ Views \ File-Enpload.ostrze.php ”.

Zbudujmy widok w celu przesłania pliku.

Skopiuj kod i wklej go do widoku.








integrity = "sha384-0evhe/x+r7ykizdrvuzkmrqm+orbnvfbl6doitfpri4tjfhxawutUpfmbp4vmvor" crossorigin = "anonimowy">

>