Не знаю, либо я просто не создан для программирования и пора все это забросить и оставить только фронтэнд, либо просто реально нет годного материала ни в сети ни в книгах. Я прогуглил все поисковики, один шлак и никакой конкретики по моему вопросу, либо приведено столько кода для этого действия, что его просто бессмысленно внедрять в виду неэффективности и тот кто его писал сам не понимает в программировании.
Объясните пожалуйста коллеги на пальцах и с кодом, чтобы понять все это раз и навсегда.
По отдельности загружать фото - ок, получается, print_r
выводит массив и показывает название фотографии и другие ее данные в том числе размер, загрузка множества фотографий выдает пустой массив, хотя выбран multipart в форме, не говоря уже о одновременной загрузке и фото и других полей формы что вообще никак не выходит.
Добавляю JS
скрипт для предварительного показа фотографий которые загрузил пользователь, все слетает и даже не выводит данные о фото, пустой массив.
Есть форма, в ней помимо текста также нужно позволить пользователям загружать фотографии. Для примера возьмем 1 поле с вводом номера.
<form name="Download" id="Download" method="post" action="So.php" enctype="multipart/form-data">
<input type="number" name="run" value="run" >
<input type="file" name="file">
<input type="submit" value="Загрузить файл!">
</form>
Данные при нажатии на кнопку ловлю так.
$data = $_POST;
$photo = $_FILES;
//Выводим
if(isset($data['submit'])) {
echo'<pre>';
print_r($data);
echo'</pre>';
echo'<pre>';
print_r($photo);
echo'</pre>';
}
else {
exit('No');
}
Уже настолько обидно что это не получается, нет подходящих слов. Я прекрасно понимаю что по сути это обычный массив с данными, но как его с технической точки зрения "приручить" не знаю и на англоязычных ресурсах тоже ничего детально описывающего процесс не нашел.
Спокойней, у всех бывают неудачи, особенно во время обучения. Иногда лучше отдохнуть и со свежей головой вернуться к проблеме.
Если разбираться в том, что не так с кодом:
В $_POST
не будет поля submit
, т.к. у <input type="submit" value="Загрузить файл!">
нет аттирбута name="submit"
enctype="multipart/form-data"
означает то как браузер отправит данные, а не какие и сколько
что бы отправить несколько файлов, нужно создать несколько input
с type="file"
и уникальным name
(хотя можно сделать name="arr_name[]"
)
Что мы имеем в итоге?
<form name="Download" id="Download" method="post" action="so.php" enctype="multipart/form-data">
<input type="number" name="run" value="run">
<input type="file" name="file1">
<input type="file" name="file2">
<input type="file" name="file3">
<!-- ^^^^^^^^^^^^ -->
<!-- уникальное name у каждого -->
<input type="submit" name="submit" value="Загрузить файл!">
<!-- ^^^^^^^^^^^^^ -->
<!-- у submit теперь есть имя -->
</form>
И соответсвенно вот что мы получаем на выводе(я загрузил файлы: exmaple.js, package-lock.json и test.html):
Array
(
[run] => 123
[submit] => Загрузить файл!
)
Array
(
[file1] => Array
(
[name] => exmaple.js
[type] => text/javascript
[tmp_name] => /tmp/phpADCPPN
[error] => 0
[size] => 765
)
[file2] => Array
(
[name] => package-lock.json
[type] => application/json
[tmp_name] => /tmp/phpqG2ipe
[error] => 0
[size] => 15311
)
[file3] => Array
(
[name] => test.html
[type] => text/html
[tmp_name] => /tmp/php5UiNYE
[error] => 0
[size] => 658
)
)
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Доброго времени суток!
Есть несколько таблиц: user admin clientЗдесь указываются роли и создаются отдельные аккаунты для них
База данных Mysql не верно показывает время, получаю командой SELECT NOW();