Загрузка файла - как создать папку назначения с именем пользователя

0

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

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

Это мой php-код для назначения:

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

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

exit;    
}

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

Теги:

4 ответа

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;
    }

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

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
    Обновил мой ответ. Проверьте это
Показать ещё 2 комментария
0

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

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

как указано в документации PHP.

  • 1
    Установите третий аргумент в TRUE, если вы хотите создавать каталоги рекурсивно.
  • 0
    @HarryFink абсолютно, поэтому ссылка на документацию PHP для получения дополнительной информации.
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
    Я ... еще одна помощь .... Могу ли я узнать, как получить переменную username вместо <username> ??
  • 0
    Почему бы вам не при входе в систему установить переменную $ _SESSION и сохранить имя пользователя, а затем использовать его следующим образом: '../ uploads /'.$_ SESSION [' username '].' / ... '

Ещё вопросы

Сообщество Overcoder
Наверх
Меню