Загрузка на недавно созданный справочник

У меня есть справочник, названный 'файлами', который содержит папки, которые представляют пространство закачки для пользователя, например, файлы/14 , где '14' UserID пользователя.

Я пытаюсь создать простой сценарий это, когда файлы загружаются, сценарий:

    Проверки <лития>, если папка Пользователя уже существует
  • , Если пользовательская папка не существует, создает один с UserID, еще игнорирует и продолжает
  • файлы Закачки к недавно созданному справочнику (например, 14) или закачка в ранее созданном пользовательском справочнике.

Это - код:

<?php 
    include("dbConfig.php");
    $Username = $_SESSION["username"];
    global $userid;
    $Password = $_SESSION["password"];
    $Password = md5($Password);

    $sql = "SELECT UserID FROM users WHERE Username = '".$Username."'";

    $result = mysql_query($sql) or die(mysql_error());
    while($row = mysql_fetch_assoc($result)) {
        $userid = $row['UserID'];
    }

    $dirname =  (string)$userid;
    $filename = ("$dirname" . "/");

    if (!file_exists("../files/" .$filename)) {
        mkdir("files/$dirname", 0775);
    } else {
        if (isset($_FILES['files'])) {
            echo "<div id='files_table'><table class='center'.><tr><td>";  
            foreach($_FILES['files']['tmp_name'] as $key => $tmp_name) {
                $dest = ($filename . "{$_FILES['files']['name'][$key]}");
                move_uploaded_file($tmp_name, $dest );
                echo $_FILES['files']['name'][$key], " uploaded.", "
"; } } } ?>

The files are being uploaded into the root directory (../files), although the User Directory is being created.

Also, the warning is not being ignored, giving me this error:

**Warning: mkdir(): File exists in C:\xampp\htdocs\Task2PHP\final\upload.php on line 80**

Can anyone help me and tell me how to fix this?

3
nl ja de
не используйте абсолютные пути! никогда! на окнах это работает, на живых веб-сайтах, в соответствии с Linux, НЕТ! потому что URL абсолютный, он рассматривается как не местный адрес и вы привычка быть в состоянии загрузить или сохранить файлы
добавлено автор Ionut Flavius Pogacian, источник
По моему скромному мнению, я думаю, что необходимо прекратить использовать относительные пути здесь. Используйте абсолютные пути вместо этого.
добавлено автор user1941719, источник

1 ответы

Как насчет того, чтобы использовать ту же самую структуру для обоих требований?

Например:

if (!file_exists("../files/" .$filename)) {
    mkdir("../files/" .$filename, 0775);

You seem to be checking that one file/folder exists on one hand and create another one somewhere else since ../files != files/

Также navnav правильный, что необходимо прекратить использовать относительные пути. Гарантированные проблемы в будущем. Особенно, если вы используете некоторую структуру и URL rewrinting.

1
добавлено
Спасибо! предупреждение исчезает, однако, никакие файлы не загружаются: (
добавлено автор Brian, источник
Спасибо @BjornKaiser
добавлено автор Iznogood, источник
Тогда у вас вероятный есть некоторые проблемы путей. Очень трудный для использования помочь с той частью. Но обычно move_uploaded_files нужен полный путь: c:\path\to\upload\to или/var/www/path/to/upload/to
добавлено автор Iznogood, источник
phpGeeks
phpGeeks
3 620 участник(ов)

Best PHP chat Еще: @dbGeeks - базы данных @phpGeeksJunior - новичкам @moscowProgers - IT Москва @ebanoePhp - весёлый канал о PHP @laravel_pro - Laravel @jobGeeks - вакансии @jsChat - JS Правила: https://t.me/phpGeeks/764859 ДР - 28.03.2016

DBA - русскоговорящее сообщество
DBA - русскоговорящее сообщество
1 345 участник(ов)

Общаемся и обсуждаем темы, посвященные DBA, PostgreSQL, Redis, MongoDB, MySQL, neo4j, riak и т.д. См. также: @devops_ru, @kubernetes_ru, @docker_ru, @nodejs_ru Рекомендуем сразу отключить уведомления, чтобы пребывание здесь было полезным и комфортным.

PHP
PHP
1 309 участник(ов)

Группа про современный PHP. Обсуждаем ООП, TDD, BDD, DDD, SOLID, GRASP и прочие крутые базворды Для ознакомления: https://gist.github.com/mkusher/711bd46f0b62fbae851182e6fb3b1839 Группа PHP для новичков @phpGeeksJunior Вакансии: https://t.me/fordev

PHP — вакансии, поиск работы и аналитика
PHP — вакансии, поиск работы и аналитика
1 251 участник(ов)

Публикуем вакансии и запросы на поиск работы по направлению PHP, Laravel, Symfony, Yii и т.д. Здесь всё: full-time, part-time, remote и разовые подработки. См. также: @qa_jobs, @devops_jobs, @javascript_jobs, @nodejs_jobs, @uiux_jobs, @products_jobs

MySQL
MySQL
995 участник(ов)

The group is about MySQL. For code use hastebin.com. Admin: @smlkw

phpGeeksJunior
phpGeeksJunior
980 участник(ов)

Группа для новичков. Не стесняйтесь задавать вопросы по php. Не флудить!!!! Правила и полезные ссылки https://gist.github.com/exileed/a53dd0617b35a705ff44b38c8028e6a5 Бест от пхпгикс https://t.me/best_of_phpgeeks

phpclub.ru
phpclub.ru
872 участник(ов)

Официальный чат phpclub.ru - остерегайтесь подделок #rules Правила группы - уважайте друг друга. Скриншоты -> ссылками. Код -> pastebin.com. Вакансии строго -> https://goo.gl/4bNxym, в чат ссылку. За рекламу и мат - БАН!

Devall | PHP
Devall | PHP
272 участник(ов)

Пристанище для восходящих звёзд разработки, которые перейдут на более адекватные языки. http://combot.org/chat/-1001014863761 Инвайт: j.mp/devallphp