Загрузить фото PHP - PullRequest
       8

Загрузить фото PHP

0 голосов
/ 06 января 2011

произошло самое странное ... Я создал интернет-магазин на PHP.Все работало нормально, но когда мы переместили сайт с нашего ftp на их, мы столкнулись с проблемой.Мы больше не можем загружать фотографии ...

        if (file_exists("../productimages/" . $_FILES["picture"]["name"]))
    {
        $feedback = "<div class=\"voegproducttoefeedback\">Please change name of product<b><big> \"".$_FILES["picture"]["name"] . "\"
        </big></b>The name already occurs in the database</div> ";
    } else
        {

        $tmp_name = $_FILES["picture"]["tmp_name"];
        $name = $_FILES["picture"]["name"];
        move_uploaded_file($tmp_name, "../productimages/$name");


        if(file_exists("../productimages/$name")) {
         $feedback2 = "succeed";
        }
        else {
                $feedback2 = "failed";
        }

     if ($product->saveproduct($_DB)) {
        $feedback = "<div class=\"voegproducttoefeedback\">Product <b><big>\"".$product->naam."\"</big></b> created with succes</div>";
      } else {
        $feedback = "<div class=\"voegproducttoefeedback\">Not enough information to create product</div>";
      }
    }}}?>

Ответы [ 5 ]

5 голосов
/ 06 января 2011

Попробуйте изменить разрешения для целевого каталога (../productimages/)

0 голосов
/ 06 января 2011

В свой ответ , вы сказали:

Хорошо, проблема (частичная) решена. Я изменил разрешения на продукцию ... Но для успеха процесса потребовалось разрешение 777 ... Не очень безопасно, хотя

Лучший способ решить эту проблему - изменить владельца каталога на пользователя, от имени которого работает веб-сервер. Однако для этого потребуется корневой доступ к серверу (или команда sudo), которого у вас, скорее всего, нет. Итак, вот обходной путь:

  1. Перепишите ваш скрипт, чтобы проверить, существует ли productimages, и, если нет, создайте его:

    if(!is_dir('../productimages/')) mkdir('../productimages/', 0755);

  2. Затем удалите каталог productimages. Вы позволите сценарию заново создать его для вас. Когда это произойдет, пользователь веб-сервера будет владельцем сценария.

  3. Чтобы это произошло, chmod 777 * родительский каталог. Это только временный и позволяет сценарию создавать каталог.

  4. Запустить скрипт. Убедитесь, что он создал каталог productimages. Если это так, chmod 755 верните родительский каталог.

Это должно позволить вам получить необходимые разрешения, а также контролировать доступ к каталогу.

0 голосов
/ 06 января 2011

Хорошо, проблема (частичная) решена.Я изменил права доступа к продуктам ... Но для успеха процесса потребовалось 777 разрешений ... Хотя и не очень безопасно.Вот моя структура, может быть, вы видите проблему ...

Вышеприведенный скрипт находится в products.php

http://img695.imageshack.us/i/schermafbeelding2011010kt.png/

0 голосов
/ 06 января 2011

Если у вас есть доступ к ним, проверьте журналы ошибок PHP.

Скорее всего, ваш хост не имеет разрешений на запись для учетной записи, отвечающей за процесс PHP. Вам нужно посмотреть, смогут ли они это включить.

0 голосов
/ 06 января 2011

Как говорит Goo, проверьте разрешения, но также убедитесь, что PHP настроен на разрешение загрузки и что максимальный размер загрузки установлен правильно.

Убедитесь, что file_uploads установлен на 'on', а upload_max_filesize установлен наразумный предел.

...