#php #wordpress #file #upload
#php #wordpress #файл #загрузка
Вопрос:
для веб-сайта WordPress я хочу создать форму с кнопкой загрузки файла. Я новичок в WordPress и php и просто хочу поэкспериментировать с ним.
Я искал в Интернете и просматривал документацию, кажется, ясно, что вам нужно делать, но не там, где вам нужно это делать. Также бесплатные плагины не помогают, поскольку они позволяют загружать изображения только в папку медиа-библиотеки от имени администратора.
Я попытался добавить блок на страницу с пользовательским html и php в нем просто для тестирования, но я получил ошибки, и это не похоже на правильный путь.
Теперь я пытаюсь добавить код php в functions.php и в браузере я вижу, что есть запрос post, но я все еще не вижу загруженное изображение на сервере.
Это мой код в functions.php
$upload_dir = '/var/www/html/wp-content/uploads/2020/11/';
if (isset($_POST['ImageToUpload']) amp;amp; !empty($_FILES)){
$name = basename($_FILES["pictures"]["name"]);
$tmp_name = $_FILES["pictures"]["tmp_name"];
move_uploaded_file($tmp_name, "$uploads_dir/$name");
}
Ответ №1:
Создайте шаблон страницы для создания формы и переместите туда свой код.
Вам также необходимо использовать обработчик действия формы, чтобы он совпадал со страницей.
Для первого рендеринга шаблон страницы отобразит форму, а когда форма будет отправлена, та же страница обработает форму.
<?php
// Form is Submitted
if (isset($_POST['ImageToUpload']) amp;amp; !empty($_FILES)){
.... rest of the code to process the form
?>
// Render the form when it is GET Request
<form action="<?php the_permalink(); ?>" id="ImageToUpload" method="post">
<label for="name">Name:</label>
<input type="text" name="name" id="name" value='' />
</form>
Комментарии:
1. Куда будет загружен файл?