#php #html #file #web #upload
#php #HTML #файл #веб #загрузка
Вопрос:
Итак, у меня есть этот код:
<form name="form" action="./" method="post">
<input type="file" name="newfile" id="newfile" />
</form>
Когда я запускаю этот php-скрипт на странице действий, ничего не происходит
echo "$_FILES['newfile']['name'];
print_r($_FILES);
Это похоже на то, что $_FILES
переменная пуста. Есть ли какой-нибудь способ это исправить?
Ответ №1:
Вам нужно установить enctype="multipart/form-data"
атрибут в вашей форме.
<!-- The data encoding type, enctype, MUST be specified as below -->
<form enctype="multipart/form-data" action="__URL__" method="POST">
<!-- MAX_FILE_SIZE must precede the file input field -->
<input type="hidden" name="MAX_FILE_SIZE" value="30000" />
<!-- Name of input element determines name in $_FILES array -->
Send this file: <input name="userfile" type="file" />
<input type="submit" value="Send File" />
</form>
Ответ №2:
Если вы не укажете <form … enctype="multipart/form-data">
, то данные будут закодированы способом, который не поддерживает файлы.
Добавьте атрибут с этим значением.
enctype = content-type [CI]
Этот атрибут определяет тип содержимого, используемый для отправки формы на сервер (когда значением метода является «post»). Значением по умолчанию для этого атрибута является «application/x-www-form-urlencoded». Значение «multipart/form-data» следует использовать в сочетании с элементом ВВОДА type=»file».
<!-- The data encoding type, enctype, MUST be specified as below -->
<form enctype="multipart/form-data" action="__URL__" method="POST">
Ответ №3:
echo "$_FILES['newfile']['name'];
Это синтаксическая ошибка. Должно быть
echo $_FILES['newfile']['name'];
или
echo "{$_FILES['newfile']['name']}";