2015-01-29 2 views
0

Мне нужно загрузить файл с использованием php, и я сделал это ... Теперь моя проблема заключается в том, что я хочу создать новую папку для каждого пользователя, позвольте мне объяснить вам, как?Загрузка файла - как создать папку назначения с именем пользователя

Моя задача - пользователь может войти в систему и получить доступ к их учетным записям и файлам. Если пользователь загрузит любой файл, он будет отправлен в папку назначения, названную «uploads». Теперь я хочу создать новую папку внутри папки uploads с конкретным именем пользователя, который загружает файл ... поэтому я хочу создать новую папку для каждого пользователя с их именем пользователя ... Может ли кто-нибудь сказать мне, как это сделать? ?

Это мой PHP код назначения:

if(move_uploaded_file($_FILES['upl']['tmp_name'], '../uploads/'.$_FILES['upl']['name']))  
{ 

echo '{"status":"success"}'; 

exit;  
} 

Заранее спасибо

ответ

0

Попробовать -

//check if the folder not exists then create it 
if (!file_exists('<rootpath>/<username>')) { //<rootpath> will be the path from document root and <username> will be the username you want 
    mkdir('<rootpath>/<username>'); 
} 
if(move_uploaded_file($_FILES['upl']['tmp_name'], '<path>/<username>/'.$_FILES['upl']['name'])) // <path> be the relative path 
{ 

echo '{"status":"success"}'; 

exit;  
} 

Предположим, вы хотите, чтобы загрузить файл в папку uploads/username.

$path = $_SERVER['DOCUMENT_ROOT'].'/uploads'; 

Теперь создайте папку -

mkdir($path."/".$username); //$username be the username you want 

Теперь загрузите файл

move_uploaded_file($_FILES['upl']['tmp_name'], 'uploads/'.$username.'/'.$_FILES['upl']['name']) 
+0

Спасибо за быстрый ответ ... еще борется с кодом ... Могу ли я узнать, как объявить мой корневой путь, а также имя пользователя внутри цикла if ??? –

+0

Обновлен мой ответ. Проверьте это –

+0

Наконец получил ответ спасибо –

0

Что вы ищете является mkdir функция. Вы можете создать каталог с помощью:

mkdir('/path/to/dir', 0700);

как отмечено в PHP documentation.

+1

Задайте третий аргумент TRUE, если вы хотите создать каталоги рекурсивными. – HarryFink

+0

@HarryFink абсолютно, отсюда ссылка на документацию PHP для получения дополнительной информации. – RhapX

0

Используйте функцию mkdir(), чтобы создать папку при регистрации пользователя.

При входе в систему введите переменную $_SESSION, сохраняющую имя пользователя.

При использовании функции move_uploaded_file() добавьте переменную сеанса в путь.

move_uploaded_file($_FILES['upl']['tmp_name'], '../uploads/'.$_SESSION['username'].'/'.$_FILES['upl']['name']) 

http://php.net/manual/en/function.mkdir.php

http://php.net/manual/en/reserved.variables.session.php

+0

Ya .. еще одна помощь .... Могу ли я узнать, как получить свою переменную имени пользователя вместо ?? –

+0

Почему вы не входите в систему, вы устанавливаете переменную $ _SESSION и сохраняете имя пользователя, а затем используете ее как таковой: '../ uploads /'.$_ SESSION [' username '].'/... ' – wayzz

0

Благодаря SGT ... Я получил ответ с этим кодом

$userfolder = $_SESSION['email']; 
//echo $userfolder; 
$path = $_SERVER['DOCUMENT_ROOT'].'register/uploads'; 

if (!file_exists('$path')) { 
    mkdir($path."/".$userfolder); 
} 
    if(move_uploaded_file($_FILES['upl']['tmp_name'], '../uploads/'.$userfolder.'/'.$_FILES['upl']['name'])){ 
     echo '{"status":"success"}'; 
     exit; 
    } 

Еще раз спасибо

Смежные вопросы