Мне нужна помощь для решения этой проблемы. Файлы не загружаются в динамически создаваемые папки / подпапки!
создавая динамическую subfolder
используя input type text
и когда я загружал файл, перемещаемый для uploads folders
но не перемещаемый в subfolder
которая создается с использованием input type text
input type text?
но динамически создавая отлично функционирующую функцию, а также показывая мне папку, которая вводится в текстовое поле в папку для загрузки
Здесь мой код
//creating dynamically subfolders $folder = $_POST['folder']; foreach( $folder as $key => $value){ $dirPath = 'uploads/'.$value; $result = mkdir($dirPath); } if ($result == '1') { //file move on function $target_path = 'uploads/'.$results; $target_path = $target_path . basename( $_FILES['uploadedfile']['name']); if(move_uploaded_file($_FILES['uploadedfile']['tmp_name'], $target_path)) { echo "The file ". basename( $_FILES['uploadedfile']['name']). " has been uploaded"; } else{ echo "There was an error uploading the file, please try again!"; } } else { echo $dirPath . " has NOT been created"; } } <form method="post" enctype="multipart/form-data"> <input name="uploadedfile" type="file" /><br /> <input type="text" id="folder" name="folder"><br /> <input type="submit" name="test" value="Upload File" /> </form>
Моя проблема решена Теперь я выполнил свой сценарий
//creating a folder $folder = $_POST['folder']; $dirPath = 'uploads/'.$folder; $result = mkdir($dirPath); if ($result == '1') { //file move on $target_path = $dirPath .'/' . basename( $_FILES['uploadedfile']['name']); if(move_uploaded_file($_FILES['uploadedfile']['tmp_name'], $target_path)) { echo "The file ". basename( $_FILES['uploadedfile']['name']). " has been uploaded"; } else{ echo "There was an error uploading the file, please try again!"; } } else { echo $dirPath . " has NOT been created"; } }
Попробуй это,
замещать
$target_path = 'uploads/'.$results;
в
$target_path = $dirPath.'/';
В противном случае,
$target_path = $dirPath .'/'. basename( $_FILES['uploadedfile']['name']); if(move_uploaded_file($_FILES['uploadedfile']['tmp_name'], $target_path)) { echo "The file ". basename( $_FILES['uploadedfile']['name']). " has been uploaded"; }
Где определены результаты $? Вы используете его здесь:
$target_path = 'uploads/'.$results;
Зачем?
Кроме того, $ result является истинным или ложным возвратом mkdir (), поэтому вы не можете использовать его.