PHP - загрузка одного или нескольких файлов

แชร์
ฝัง
  • เผยแพร่เมื่อ 4 ก.ค. 2024
  • GitHub репозиторий: github.com/m1nyasha/php-simpl...
    В этом занятии мы научимся загружать файлы на сервер нативными средствами PHP.
    Официальная документация PHP: www.php.net
    Наш образовательный проект - areaweb.su​​
    VK: areawebsu
    Эпизоды:
    0:00 Привет!
    0:43 Что нужно знать?
    2:14 Что нам понадобится?
    3:05 Немного о Laravel Valet
    4:48 Еще чуть-чуть про PHP Monitor
    5:15 Готовим наш проект
    8:28 Создаем HTML форму
    12:41 Отправляем один файл на сервер
    19:41 Папка для хранения файлов
    24:32 Сохраняем файл в папку
    27:35 Уникальное имя файла
    33:46 Валидация типа файла
    39:39 Валидация размера файла
    43:08 Загрузка нескольких файлов
    57:23 Прощаемся :(

ความคิดเห็น • 39

  • @user-vu9qk3zs8v
    @user-vu9qk3zs8v ปีที่แล้ว +2

    Спасибо вам большое!!! Я сам из Казахстана. Из за ваших видео я уже скоро открываю Маркетплейс! Вы очень чётко, коротко и понятливо объясняете. Из ваших видео постараюсь не пропустить каждое ваше слово)

  • @sergeysemkin6570
    @sergeysemkin6570 2 ปีที่แล้ว +1

    Mla, Красавчик! Приятно слушать, а главное понятно.

  • @marina6220
    @marina6220 3 ปีที่แล้ว

    Да...мне нужно было это сделать, не получалось...подсказок нормальных не нашла. А тут хопа и видео Михаила-крутое!!! Спасибо!

  • @dkushka
    @dkushka 3 ปีที่แล้ว +1

    Благодарю Михаил.

  • @fantaizer4199
    @fantaizer4199 2 ปีที่แล้ว +1

    Спасибо большое вам! Редактор статей теперь готов!

  • @oleg_andrianov
    @oleg_andrianov 2 ปีที่แล้ว

    Круто. Спасибо!

  • @baton4iki
    @baton4iki 3 ปีที่แล้ว +2

    Спсибо)

  • @doffyso
    @doffyso 3 ปีที่แล้ว

    Миша, будет ли туториал по мессенджеру, тип показ сообщений, онлайн/оффлайн, пишет/не пишет и т.д?

  • @ingwar6196
    @ingwar6196 9 หลายเดือนก่อน

    Запиши пожалуйста видео как заливать файлы на Amazon S3, нет нормального контента на данную тему. Или какие-то альтернативные варианты, чтобы не хранить файлы на хостинге.

  • @alikhankhakim5621
    @alikhankhakim5621 3 ปีที่แล้ว

    Спасибо, очень помог!!!!
    А как сделать если ты загружаешь не сколько файлов, и один не совпадает по разрешение или размеру, но все остальные файлы которые совпадает по всем параметрам тоже не загружался. Пока все файлы не совпадает по всем параметрам, то никакая файлы не загрузится. Как это сделать?? Сможешь написать код?

  • @TheEmberEve
    @TheEmberEve ปีที่แล้ว

    А как-же атрибут multiple у inputа?

  • @spacenomoe
    @spacenomoe 11 หลายเดือนก่อน

    Я думал будет одним инпутом несколько файлов. Ну типа зажал ctrl и выбираешь сколько надо. Не понимаю зачем разным инпутам давать общий ключ. Но всё равно было интересно, кое-что новое таки услышал. Спасибо.

  • @MrJAM413
    @MrJAM413 2 ปีที่แล้ว +3

    Делаю следующую задачу по вашему видео) все очень доступно и понятно объясняете.
    Есть вопрос. Как вывести эти же картинки, только без использования бд?

    • @user-du6ns4ww6o
      @user-du6ns4ww6o 2 ปีที่แล้ว

      Если актуально, могу помочь, скину ссылку на git если хочешь

    • @evapriest3188
      @evapriest3188 2 ปีที่แล้ว

      @@user-du6ns4ww6o тоже актуально, скиньте пожалуйста)

    • @ijlixt801
      @ijlixt801 ปีที่แล้ว

      @@user-du6ns4ww6o Добрый день! Скинете ссылку!?

    • @mayke8623
      @mayke8623 ปีที่แล้ว

      Код по загрузке закинуть в html где форма.

  • @MrAbragadabra
    @MrAbragadabra 3 ปีที่แล้ว +1

    Здравствуйте, Михаил! А вы будите снимать видео про PDO? Мне особенно интересно, как работать с ajax и PDO

    • @areaweb
      @areaweb  3 ปีที่แล้ว

      Да, я изначально и хотел про PDO. Что конкретно интересует?

    • @MrAbragadabra
      @MrAbragadabra 3 ปีที่แล้ว

      @@areaweb само PDO я понял, но я хочу сделать ajax валидацию и регистрацию. С JS не очень дружу, ваши видео очень помогают!

  • @un_nooby_essancti_ty8095
    @un_nooby_essancti_ty8095 3 ปีที่แล้ว +6

    Здравствуйте, Михаил. Будете ли продолжать данную тему ? К примеру, записывать информацию о файле в базу данных(путь, размер, дату добавления) или сделать добавление файлов на сервер средством переноса ?

    • @areaweb
      @areaweb  3 ปีที่แล้ว

      Средства переноса - имеется ввиду Drag & Drop?

    • @un_nooby_essancti_ty8095
      @un_nooby_essancti_ty8095 3 ปีที่แล้ว

      @@areaweb Да :)

    • @artyom-h
      @artyom-h 2 ปีที่แล้ว

      так есть же у него а канале ролик про работу CRUD в php, посмотри его и совмести полученные знания

  • @poiu7185
    @poiu7185 3 ปีที่แล้ว

    Сделайте,пожалуйста,видео про загрузку файлов на сторонние хостинги с помошью php.На ютубе вообще нету нормального объяснения,а документация непонятная.

  • @dreamypioneer3760
    @dreamypioneer3760 3 ปีที่แล้ว +1

    Как всегда годно. Но 1 момент, а если допустим наше приложение поддерживает загрузку до 10 файлов за раз, то мы же не будем писать 10 инпутов, логичнее сделать 1 инпут с атрибутом multiple?

    • @areaweb
      @areaweb  3 ปีที่แล้ว

      Да, скорее, так и нужно делать

    • @dreamypioneer3760
      @dreamypioneer3760 3 ปีที่แล้ว +1

      @@areaweb там тоже нужно задавать имя с квадратными скобками в конце, в принципе очень похоже на то, что в уроке, но более универсально)

    • @user-du6ns4ww6o
      @user-du6ns4ww6o 2 ปีที่แล้ว

      @@dreamypioneer3760 Здравствуй, вывод также с multiplу выводить через foreach?

    • @dreamypioneer3760
      @dreamypioneer3760 2 ปีที่แล้ว +1

      @@user-du6ns4ww6o ну это массив. for , foreach

  • @user-yh1xf4tj7o
    @user-yh1xf4tj7o 2 ปีที่แล้ว +1

    на гитхабе код нерабочий(

  • @slepoy4410
    @slepoy4410 2 ปีที่แล้ว

    Это длинное integer число это кол во секунд которые прошли от 1 Январч 1970 года

  • @GrindellsKanal
    @GrindellsKanal 3 ปีที่แล้ว +1

    Наверное самый простой способ сгенерировать уникальное имя для файла - вызвать нативную функцию uniqid

    • @MrAbragadabra
      @MrAbragadabra 3 ปีที่แล้ว +1

      Я просто сгенерировал хеш с помощью md5. Но md5 можно только для этого. Для хранения паролей я использую password_hash

    • @muhammadhalimov422
      @muhammadhalimov422 ปีที่แล้ว

      Спасибо друг, у меня из-за time() сгружался только 1 файл, а uniqid() решил эту проблему !

  • @MsGa01
    @MsGa01 2 ปีที่แล้ว

    код не рабочий, мульзагрузка не работает, файлы не загружаются, ошибок не выдает

    • @MsGa01
      @MsGa01 2 ปีที่แล้ว

      Включил вывод ошибок Notice: Undefined index: image in C:\OpenServer\domains\loadfile.loc\core\multiupload.php on line 22
      Notice: Trying to access array offset on value of type null in C:\OpenServer\domains\loadfile.loc\core\multiupload.php on line 30
      Notice: Undefined index: image in C:\OpenServer\domains\loadfile.loc\core\multiupload.php on line 22
      Notice: Trying to access array offset on value of type null in C:\OpenServer\domains\loadfile.loc\core\multiupload.php on line 30
      Notice: Undefined index: image in C:\OpenServer\domains\loadfile.loc\core\multiupload.php on line 22
      Notice: Trying to access array offset on value of type null in C:\OpenServer\domains\loadfile.loc\core\multiupload.php on line 30

    • @mayke8623
      @mayke8623 ปีที่แล้ว

      Ты не подключил файлы с кодом по загрузке.)

  • @mayke8623
    @mayke8623 ปีที่แล้ว

    У меня чуть проще код.)
    for($i = 0; $i < count($_FILES['image']['name']); $i++){ //указываем сколько элементов в массиве.

    echo $_FILES['image']['name'][$i];
    upload_file($_FILES['image']['name'][$i], $_FILES['image']['tmp_name'][$i]);
    }
    function upload_file($fileName, $tmp_name){
    //include __DIR__ . '/db.php';
    $result = pathinfo($fileName);
    $fileName = uniqid() . "." . $result['extension'];//изменение названия файла.
    //$data = $pdo->prepare("INSERT INTO `upload` (`file`) VALUES (?) ");//запрос к базе данных.
    //$data->execute([$fileName]);
    move_uploaded_file($tmp_name, 'upload/' . $fileName);
    header("Location: html.php");
    }