Загрузить изображение на странице WordPress с помощью PHP

Привет, удивительные люди SE! 🙂

Хорошо, так что это немного надуманно, но я пытаюсь получить HTML-форму с скриптом загрузки PHP для работы на странице WordPress. Я не могу использовать плагин. Предполагается, что это веб-страница, например, дизайн-сайт, где клиенты могут загружать изображения через форму html (потребуются логин и прочее, но я буду иметь дело с этим позже)

Я получил дочернюю тему, я создал страницу под названием «upload», и я редактирую файл «page-upload.php»,

Моя форма в странице-upload.php

<form action="<?php bloginfo('template_url'); ?>/upload.php" method="post" enctype="multipart/form-data"> <input type="file" name="file" /> <input type="submit" name="submit" value="Upload" /> </form> 

form action = "upload.php" не нашел файл правильно, поэтому после некоторых поисковых запросов я нашел это:

<? php bloginfo ('template_url'); ?> / upload.php»

которым удалось найти файл, но вместо того, чтобы загружать изображение, он просто отражал каждое эхо от PHP.

Я использовал пример загрузки файлов PHP для W3Schools, чтобы просто начать работу, но obv это было не так просто, как я надеялся ^ _ ^

http://www.w3schools.com/php/php_file_upload.asp

 <?php $target_dir = "uploads/"; $target_file = $target_dir . basename($_FILES["fileToUpload"]["name"]); $uploadOk = 1; $imageFileType = pathinfo($target_file,PATHINFO_EXTENSION); // Check if image file is a actual image or fake image if(isset($_POST["submit"])) { $check = getimagesize($_FILES["fileToUpload"]["tmp_name"]); if($check !== false) { echo "File is an image - " . $check["mime"] . "."; $uploadOk = 1; } else { echo "File is not an image."; $uploadOk = 0; } } // Check if file already exists if (file_exists($target_file)) { echo "Sorry, file already exists."; $uploadOk = 0; } // Check file size if ($_FILES["fileToUpload"]["size"] > 500000) { echo "Sorry, your file is too large."; $uploadOk = 0; } // Allow certain file formats if($imageFileType != "jpg" && $imageFileType != "png" && $imageFileType != "jpeg" && $imageFileType != "gif" ) { echo "Sorry, only JPG, JPEG, PNG & GIF files are allowed."; $uploadOk = 0; } // Check if $uploadOk is set to 0 by an error if ($uploadOk == 0) { echo "Sorry, your file was not uploaded."; // if everything is ok, try to upload file } else { if (move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_file)) { echo "The file ". basename( $_FILES["fileToUpload"]["name"]). " has been uploaded."; } else { echo "Sorry, there was an error uploading your file."; } } ?> 

Так можно ли это сделать в WP с PHP и HTML или потребуется ли там JS \ jQuery? 🙂

Реализация собственной формы загрузки, подобной этой, может стать серьезной уязвимостью безопасности, вы можете вместо этого использовать библиотеку / скрипт, где такие потенциальные проблемы уже решены должным образом.

Вот один из них, который я помню, используя успешно в проекте для аналогичной цели (загруженное пользователем видео) … хотя это может быть больше, чем вам нужно, у него есть больше примеров и документации, чем упрощенный веб-пример: PL Upload

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