2014-02-17 4 views
0

Я создаю приложения для загрузки файла в систему, но здесь я столкнулся с проблемой. папка была создана правильно, как я хочу, но когда я нажимаю кнопку «Загрузить», файл не сохраняется в папке, поскольку я установлен как цель. Ниже приведен мой синтаксис.установить папку в каталог

$id=$_SESSION['topic']; 

$target_path = mkdir("doc_student/$id", '0777'); 
$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 "Error during uploading this file"; 
} 
+1

Проблема вы» re имеет результат, потому что возвращаемое значение ['mkdir'] (http://www.php.net/manual/en/function.mkdir.php#refsect1-function.mkdir-returnvalues) является логическим, а не строковым. Таким образом, вы получаете что-то вроде '$ target_path = true. BASENAME ($ FILES [ 'uploadedFile'] [ 'имя']); ' – Havelock

ответ

2

mkdir() Возвращает TRUE при успешном выполнении или FALSE при сбое. если вы назначаете $target_path функции mkdir, тогда переменная становится логической. Попробуйте это,

$target_path = "doc_student/$id"; 
if(!is_dir($target_path)){ 
    mkdir($target_path, '0777'); 
} 

вместо

$target_path = mkdir("doc_student/$id", '0777'); 
1

mkdir() Retuns boolean, если он имеет успех, а не путь созданной папки, вы должны использовать другой синтаксис:

mkdir("doc_student/$id", '0777'); 
$target_path = "doc_student/$id"; 
Смежные вопросы