Создание файла PHP Создание каталога

Таким образом, у меня есть часть загрузки файла на моем сайте, где пользователь может загрузить любую папку doc или docx. Heres мой html код:

<form action="upload_file.php" method="post" enctype="multipart/form-data"> Select a file: <input type="file" name="upload"> <input type="submit"> 

И вот код для upload_file.php:

 <?php session_start(); $allowedExts = array("doc", "docx"); $extension = end(explode(".", $_FILES["upload"]["name"])); if (($_FILES["upload"]["size"] < 200000) && in_array($extension, $allowedExts)) { if ($_FILES["upload"]["error"] > 0) { echo "Return Code: " . $_FILES["upload"]["error"] . "<br />"; } else { echo "Upload: " . $_FILES["upload"]["name"] . "<br />"; echo "Type: " . $_FILES["upload"]["type"] . "<br />"; echo "Size: " . ($_FILES["upload"]["size"] / 1024) . " Kb<br />"; echo "Temp file: " . $_FILES["upload"]["tmp_name"] . "<br />"; if (file_exists("Proposals/".$_SESSION["FirstName"] ."/" . $_FILES["upload"]["name"])) { echo $_FILES["upload"]["name"] . " already exists. "; } else { move_uploaded_file($_FILES["upload"]["tmp_name"], "Proposals/". $_SESSION["FirstName"] ."/". $_FILES["upload"]["name"]); echo "Stored in: " . "Proposals/". $_SESSION["FirstName"] ."/". $_FILES["upload"]["name"]; } } } else { echo "Invalid file"; } ?> 

Но это ничего не загрузит, даже если он ответил с успешным сообщением. Я думаю, это потому, что это не позволит мне создать каталог. Что-то не так с приведенным выше кодом, или мне нужно добавить еще какой-нибудь код, чтобы создать каталог. Вот моя структура папок, если она вообще помогает:

скоросшиватель

Related of "Создание файла PHP Создание каталога"

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

Используйте mkdir (), http://php.net/mkdir , чтобы создать каталог, а затем переместите файл.

Вот альтернативный конец вашего скрипта, который должен сделать

 // Create directory if it does not exist if(!is_dir("Proposals/". $_SESSION["FirstName"] ."/")) { mkdir("Proposals/". $_SESSION["FirstName"] ."/"); } // Move the uploaded file move_uploaded_file($_FILES["upload"]["tmp_name"], "Proposals/". $_SESSION["FirstName"] ."/". $_FILES["upload"]["name"]); // Output location echo "Stored in: " . "Proposals/". $_SESSION["FirstName"] ."/". $_FILES["upload"]["name"]; 

Вам нужно проверить, существует ли каталог, а если нет, создайте его.

 if (!file_exists("Proposals/". $_SESSION["FirstName"])) { mkdir("Proposals/". $_SESSION["FirstName"]); } 

Вы загружаете файл в каталог, который не существует, поэтому вам нужно его сначала создать, ваш файл upload_file.php должен выглядеть как

 <?php session_start(); $allowedExts = array("doc", "docx"); $extension = end(explode(".", $_FILES["upload"]["name"])); if (($_FILES["upload"]["size"] < 200000) && in_array($extension, $allowedExts)) { if ($_FILES["upload"]["error"] > 0) { echo "Return Code: " . $_FILES["upload"]["error"] . "<br />"; } else { echo "Upload: " . $_FILES["upload"]["name"] . "<br />"; echo "Type: " . $_FILES["upload"]["type"] . "<br />"; echo "Size: " . ($_FILES["upload"]["size"] / 1024) . " Kb<br />"; echo "Temp file: " . $_FILES["upload"]["tmp_name"] . "<br />"; if (file_exists("Proposals/".$_SESSION["FirstName"] ."/" . $_FILES["upload"]["name"])) { echo $_FILES["upload"]["name"] . " already exists. "; } else { // Check if directory exists if not create it if(!is_dir("Proposals/". $_SESSION["FirstName"] ."/")) { mkdir("Proposals/". $_SESSION["FirstName"] ."/"); } move_uploaded_file($_FILES["upload"]["tmp_name"], "Proposals/". $_SESSION["FirstName"] ."/". $_FILES["upload"]["name"]); echo "Stored in: " . "Proposals/". $_SESSION["FirstName"] ."/". $_FILES["upload"]["name"]; } } } else { echo "Invalid file"; } ?>