Загрузка файла на сервер и обработка на PHP (Часть-2) | Базовый курс PHP-7

แชร์
ฝัง
  • เผยแพร่เมื่อ 3 ต.ค. 2024

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

  • @space_m8245
    @space_m8245 4 ปีที่แล้ว +6

    супер. продолжайте эту тему.php рулит)

  • @ТатьянаКупцова-л5л
    @ТатьянаКупцова-л5л 2 ปีที่แล้ว +2

    Спасибо большое за ролики!

  • @hephenstawking2176
    @hephenstawking2176 3 ปีที่แล้ว +23

    здесь ошибка:
    сперва нужна проверка на размер файл, и только после этого проверка на загрузку, т.к. в текущем варианте IF на размер файла срабатывает, но сам файл фактически загружается на сервер.

    • @сергейсергей-г9х6е
      @сергейсергей-г9х6е 3 ปีที่แล้ว

      напишите как проверку сделать

    • @JohnDoe-uj2br
      @JohnDoe-uj2br 3 ปีที่แล้ว +5

      @@сергейсергей-г9х6е
      if ($_FILES['filename']['size'] > 2 * 1024 * 1024) {
      exit('Размер файла превышает 2Мб');
      }elseif (move_uploaded_file($_FILES['filename']['tmp_name'], 'temp/' .$_FILES['filename']['name'])) {
      echo 'Файл загружен на сервер';
      echo 'Характеристики файла:';
      echo 'Имя файла:';
      echo $_FILES['filename']['name'] . '';
      echo 'Размер файла:';
      echo $_FILES['filename']['size'] . '';
      echo 'Тип файла:';
      echo $_FILES['filename']['type'];
      }else{
      echo 'Файл не загружен на сервер';
      }

    • @сергейсергей-г9х6е
      @сергейсергей-г9х6е 3 ปีที่แล้ว

      @@JohnDoe-uj2br спасибо

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

      А не проще поставить max_file_size в самой форме?

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

      Да, автор лоханулся конкретно, в его случае файл будет загружаться, просто не будет написано что он загружен
      Вот правильный варик
      if($_FILES['filename']["size"] > 2*1024*1024){
      exit("Файл превышает размер 2 мб");
      }else {
      if(move_uploaded_file($_FILES['filename']["tmp_name"] , "tmp/" . $_FILES['filename']["name"])){
      echo 'файл загружен';
      }else {
      echo 'файл НЕ загружен';
      }
      }

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

    хорошо. прошел и этот урок)

  • @kostyakozlov5289
    @kostyakozlov5289 4 ปีที่แล้ว +3

    Не понимаю, я разделил по переносу строк, а как разбить строку на время, имя и текст?

  • @MikhailMMA
    @MikhailMMA 3 หลายเดือนก่อน

    Андрей, Работаю с openserver , проблема такая , при интерпретации php кода возникает проблема, при которой любой используемый браузер, не интерпретирует код, а лишь выводит на экран сам код.
    Пытался менять домены, файлы, перезагружать openserver.
    Итог: все равно выдает просто код (текстом)

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

    можем ли мы сделать кнопку отправки неактивной, если размер файла превышает лимит?

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

      Да, мы можем сделать кнопку отправки неактивной, если размер файла превышает лимит, с помощью JavaScript.
      Для этого нам нужно добавить обработчик событий на поле ввода файла, который будет проверять его размер при выборе файла. Если размер файла превышает заданный лимит, то мы делаем кнопку отправки неактивной, а если размер файла в пределах лимита, то кнопка отправки становится активной.

  • @solong4347
    @solong4347 4 ปีที่แล้ว +1

    Можно ответ увидеть или подсказку по последнему пункту домашнего задания?

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

    Нормально))

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

    Как занести имя файла в таблицу бд для вывода

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

    ИИСУС ХРИСТОС ЕСТЬ МЕССИЯ И ОН ВОСКРЕС!!!☦❤

  • @Evgenii1996
    @Evgenii1996 4 ปีที่แล้ว +1

    Андрей, привет. Планируешь курс по Yii2 или другой фреймворк?

    • @andrievskii
      @andrievskii  4 ปีที่แล้ว +9

      Yii не изучал, а вот Laravel можно будет

    • @razmikxachaturiani6729
      @razmikxachaturiani6729 4 ปีที่แล้ว +4

      @@andrievskii привет и когда планируешь уроки laravel сделать?

    • @nurdanokenov4439
      @nurdanokenov4439 4 ปีที่แล้ว +4

      @@andrievskii Ждем laravel!

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

    Где сама картинка

  • @developerno1820
    @developerno1820 2 ปีที่แล้ว +12

    Для тех кто не справился с дз:
    if(move_uploaded_file($_FILES['filename']["tmp_name"] , "tmp/" . $_FILES['filename']["name"])){
    $log = file_get_contents("tmp/" . $_FILES['filename']["name"]);
    $arr = explode("
    ", $log);
    unset($arr[count($arr)-1]);
    foreach($arr as $key => $value){
    $arr2 = explode("]", $value);
    foreach($arr2 as $key1 => $value1){
    $var1 = $arr2[0] . "";
    }
    foreach($arr2 as $key1 => $value1){
    $var2 = $arr2[1] . "";
    }
    foreach($arr2 as $key1 => $value1){
    $var3 = $arr2[2] . "";
    }
    echo "a. " . "Time " . substr($var1, 1);
    echo "b. " . substr($var2, 2);
    echo "c. " . "Write " . $var3;
    }
    }

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

      if(move_uploaded_file($_FILES['filename']['tmp_name'], 'item/' . $_FILES['filename']['name'])){
      $file = file('item/' . $_FILES['filename']['name']);
      foreach($file as $key => $value){
      $value = explode("] ", $value);
      $value = str_replace("[", "", $value);
      foreach($value as $key2 => $value2){
      if($key2 == 0){
      echo 'Time ' . $value2 . "";
      }else if($key2 == 1){
      echo 'Name ' . $value2 . "";
      }else if($key2 == 2){
      echo 'Write ' . $value2 . "";
      }
      }
      echo "";
      }
      }else{
      echo 'Файл НЕ скопирован на сервер';
      }

    • @chronofagt
      @chronofagt 2 ปีที่แล้ว +5

      Спасибо тебе большое за твои комментарии, стараюсь решать всё сам, но иногда как например в этом уроке, хоть убей понять не мог что да как делать, и твоё решение очень помогло. Всего тебе хорошего, спасибо ещё раз за такую помощь)

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

      А зачем еще другие циклы?
      if ($_FILES['fileName']['size'] < 1024 * 2048) {
      if (move_uploaded_file($_FILES['fileName']['tmp_name'],'css/' . $_FILES['fileName']['name'])) {
      $log = explode("
      ", file_get_contents('css/month.txt'));
      foreach ($log as $value) {
      $arr2 = explode(']', $value);
      $var1 = $arr2[0];
      $var2 = $arr2[1];
      $var3 = $arr2[2];
      echo "";
      echo "a. Time " . substr($var1, 1) . '';
      echo "b. " . substr($var2, 2) . '';
      echo "c. write " . $var3 . '';
      echo "";
      }

      }
      } else {
      echo 'too much size';
      }

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

    Почему sumbit у меня не кнопка, а поле ввода?

  • @МишаДрон-б5и
    @МишаДрон-б5и 4 ปีที่แล้ว

    Добрый день! нету файла из ДЗ. В какой папке temp, где этот файл?
    Спасибо

    • @andrievskii
      @andrievskii  4 ปีที่แล้ว

      По ссылке под роликом есть домашнее задание - проверил

  • @КлиментийБлошков
    @КлиментийБлошков 4 ปีที่แล้ว

    Андрей привет подскажи в чем может быть проблема, написал всё в точности как у тебя, но обработчик будто не получает файл, и $_FILES соответственно пустой

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

      первый файл form должен быть в расширении html

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

    Форма:
    Lesson36

    input{
    position:absolute;
    left:10%;
    border-color: blue;
    border-radius: 5px;
    border-width: 1px;
    }
    /* input[type='file'] {
    color: transparent;
    }
    */




    Выберите файл




    Подтвердите

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

    на реальном сервере не работает
    пошел другим путём, читаю /tmp => scandir(), видит загруженный файл в массиве [3]
    подставляю путь.название в move_uploads_file() ... и нихрена!!

  • @OPAPIZDEC
    @OPAPIZDEC 4 ปีที่แล้ว

    А как сделать проверку по формату jpg png gif нужен масив?

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

      Разбить строку по точке, и последний элемент списка это его расширение, а потом проверяешь есть ли это расширение в списке разрешенных расширений (нужно список создать где будут нужные расширения)

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

    у меня не получается сделать дз как это делать можете помочь

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

    БОГ ЕСТЬ ЛЮБИТЕ БОГА И СВОИХ БЛИЖНИХ!!!☦❤

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

    Всем привет!
    Кидаю свое решение, не смогла я додуматься, как сразу загруженный док открывать. Если будут комментарии буду благодарна.
    if(move_uploaded_file($_FILES['filename']['tmp_name'], 'temp/'.$_FILES['filename']['name'])){
    if ($_FILES['filename']['size'] > 1*1024*1024) {
    echo 'Размер файла превышает 2 мегабайта';
    exit();
    echo 'test';

    }else{
    echo 'Файл скопирован на сервер';
    echo 'Характеристики нашего файла:';
    echo 'Имя файла: ';
    echo $_FILES['filename']['name'] . '';
    echo 'Размер файла: ';
    echo $_FILES['filename']['size'] . '';
    echo 'Тип файла: ';
    echo $_FILES['filename']['type'] . '';

    }
    $data = file('temp/chatlog_2019-12-04.txt');
    echo '';
    print_r (var_dump($data));
    echo '';
    }

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

    Ужас, хуже только дударь

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

  • @ОлегКулаков-ж9с
    @ОлегКулаков-ж9с 5 หลายเดือนก่อน +1

    У меня получилось так:

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

    👍

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

    Если кто то в 2023 смотрит, вот по моему мнению самый правильный код для дз:
    if (move_uploaded_file($_FILES["userfile"]["tmp_name"], "temp/{$_FILES["userfile"]["name"]}")) {
    $log = explode("
    ", file_get_contents("temp/{$_FILES["userfile"]["name"]}"));
    foreach ($log as $value) {
    $log2[] = explode("]", $value);
    }
    for ($i=0; $i < count($log2); $i++) {
    $time[] = substr($log2[$i][0], 1);
    $name[] = substr($log2[$i][1], 2);
    $write[] = $log2[$i][2];
    }
    for ($i=0; $i < count($time); $i++) {
    echo "Time $time[$i]$name[$i]Write $write[$i]";
    }
    }else{
    echo "Файл не был загружен";
    }

    • @ДмитрийУсов-м4я
      @ДмитрийУсов-м4я 8 หลายเดือนก่อน

      Твой код единственный заработал. Ты случайно не через Опенсервер сервак поднял?

    • @neven4ik
      @neven4ik 8 หลายเดือนก่อน

      @@ДмитрийУсов-м4я не