Тёмный
No video :(

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

Andrievskii Andreii
Подписаться 46 тыс.
Просмотров 18 тыс.
50% 1

Для загрузки пользовательских файлов на сервер применяется специальный элемент управления, позволяющий указать путь к загружаемому файлу.
Мы научимся следующим операциям с файлами:
- верстать форму на сайте для загрузи фала
- проверять наличие файла
- ограничивать размер загрузки файла
- копировать файл с буфера в нужную папку
- считывать данные о файле
ДОМАШНЕЕ ЗАДАНИЕ:
drive.google.c...

Опубликовано:

 

28 авг 2024

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 50   
@space_m8245
@space_m8245 4 года назад
супер. продолжайте эту тему.php рулит)
@user-el7hx2rw3e
@user-el7hx2rw3e 2 года назад
Спасибо большое за ролики!
@hephenstawking2176
@hephenstawking2176 3 года назад
здесь ошибка: сперва нужна проверка на размер файл, и только после этого проверка на загрузку, т.к. в текущем варианте IF на размер файла срабатывает, но сам файл фактически загружается на сервер.
@user-uw7rc2yd4v
@user-uw7rc2yd4v 3 года назад
напишите как проверку сделать
@JohnDoe-uj2br
@JohnDoe-uj2br 3 года назад
@@user-uw7rc2yd4v 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 'Файл не загружен на сервер'; }
@user-uw7rc2yd4v
@user-uw7rc2yd4v 3 года назад
@@JohnDoe-uj2br спасибо
@gametrack_youtube
@gametrack_youtube 2 года назад
А не проще поставить max_file_size в самой форме?
@developerno1820
@developerno1820 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 года назад
хорошо. прошел и этот урок)
@MikhailMMA
@MikhailMMA 2 месяца назад
Андрей, Работаю с openserver , проблема такая , при интерпретации php кода возникает проблема, при которой любой используемый браузер, не интерпретирует код, а лишь выводит на экран сам код. Пытался менять домены, файлы, перезагружать openserver. Итог: все равно выдает просто код (текстом)
@kostyakozlov5289
@kostyakozlov5289 4 года назад
Не понимаю, я разделил по переносу строк, а как разбить строку на время, имя и текст?
@YoutuberIT
@YoutuberIT Год назад
Нормально))
@asleshka
@asleshka Год назад
можем ли мы сделать кнопку отправки неактивной, если размер файла превышает лимит?
@andrievskii
@andrievskii Год назад
Да, мы можем сделать кнопку отправки неактивной, если размер файла превышает лимит, с помощью JavaScript. Для этого нам нужно добавить обработчик событий на поле ввода файла, который будет проверять его размер при выборе файла. Если размер файла превышает заданный лимит, то мы делаем кнопку отправки неактивной, а если размер файла в пределах лимита, то кнопка отправки становится активной.
@contactplus100
@contactplus100 2 года назад
👍
@developerno1820
@developerno1820 2 года назад
Для тех кто не справился с дз: 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 года назад
Спасибо тебе большое за твои комментарии, стараюсь решать всё сам, но иногда как например в этом уроке, хоть убей понять не мог что да как делать, и твоё решение очень помогло. Всего тебе хорошего, спасибо ещё раз за такую помощь)
@chumbuzzy4694
@chumbuzzy4694 10 месяцев назад
А зачем еще другие циклы? 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'; }
@xeither289
@xeither289 2 года назад
ИИСУС ХРИСТОС ЕСТЬ МЕССИЯ И ОН ВОСКРЕС!!!☦❤
@solong4347
@solong4347 4 года назад
Можно ответ увидеть или подсказку по последнему пункту домашнего задания?
@Evgenii1996
@Evgenii1996 4 года назад
Андрей, привет. Планируешь курс по Yii2 или другой фреймворк?
@andrievskii
@andrievskii 4 года назад
Yii не изучал, а вот Laravel можно будет
@razmikxachaturiani6729
@razmikxachaturiani6729 4 года назад
@@andrievskii привет и когда планируешь уроки laravel сделать?
@nurdanokenov4439
@nurdanokenov4439 4 года назад
@@andrievskii Ждем laravel!
@august2000
@august2000 3 года назад
Форма: Lesson36 input{ position:absolute; left:10%; border-color: blue; border-radius: 5px; border-width: 1px; } /* input[type='file'] { color: transparent; } */ Выберите файл Подтвердите
@glbash_
@glbash_ 3 года назад
Как занести имя файла в таблицу бд для вывода
@klodska
@klodska 2 года назад
Почему sumbit у меня не кнопка, а поле ввода?
@user-ok7kx7cq5j
@user-ok7kx7cq5j 4 года назад
Андрей привет подскажи в чем может быть проблема, написал всё в точности как у тебя, но обработчик будто не получает файл, и $_FILES соответственно пустой
@PlayOnMax
@PlayOnMax 3 года назад
первый файл form должен быть в расширении html
@phitrow
@phitrow 2 года назад
на реальном сервере не работает пошел другим путём, читаю /tmp => scandir(), видит загруженный файл в массиве [3] подставляю путь.название в move_uploads_file() ... и нихрена!!
@user-sg2ow1fb3q
@user-sg2ow1fb3q 4 года назад
Добрый день! нету файла из ДЗ. В какой папке temp, где этот файл? Спасибо
@andrievskii
@andrievskii 4 года назад
По ссылке под роликом есть домашнее задание - проверил
@artcip5715
@artcip5715 Год назад
Где сама картинка
@sunnatillaortiqov6302
@sunnatillaortiqov6302 3 года назад
у меня не получается сделать дз как это делать можете помочь
@OPAPIZDEC
@OPAPIZDEC 4 года назад
А как сделать проверку по формату jpg png gif нужен масив?
@ruden6623
@ruden6623 2 года назад
Разбить строку по точке, и последний элемент списка это его расширение, а потом проверяешь есть ли это расширение в списке разрешенных расширений (нужно список создать где будут нужные расширения)
@xeither289
@xeither289 2 года назад
БОГ ЕСТЬ ЛЮБИТЕ БОГА И СВОИХ БЛИЖНИХ!!!☦❤
@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 ''; }
@aizerbox123
@aizerbox123 Год назад
file_get_contents
@sergeysemkin6570
@sergeysemkin6570 2 года назад
Ужас, хуже только дударь
@user-yp5kg8jb6f
@user-yp5kg8jb6f 4 месяца назад
У меня получилось так:
@mavvdies
@mavvdies Год назад
@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 "Файл не был загружен"; }
@user-om6iv4ek7n
@user-om6iv4ek7n 7 месяцев назад
Твой код единственный заработал. Ты случайно не через Опенсервер сервак поднял?
@neven4ik
@neven4ik 7 месяцев назад
@@user-om6iv4ek7n не
Далее
Загрузка файлов с фронтенда
18:49
Chelsea gym be like.. 😅⚽️
00:20
Просмотров 12 млн
Only I get to bully my sister 😤
00:27
Просмотров 37 млн
Сессии в PHP | Базовый курс PHP-7
18:16
Загрузка файлов на PHP
34:42