上传照片PHP

时间:2011-01-05 23:19:22

标签: php upload photo

最奇怪的事情发生了...我用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 个答案:

答案 0 :(得分:5)

尝试更改目标目录权限(../ productimages /)

答案 1 :(得分:0)

正如Goo所说,检查权限,但也要确保PHP配置为允许上传,并且正确设置了最大上传大小。

检查file_uploads设置为'on',upload_max_filesize设置为合理限制。

答案 2 :(得分:0)

如果您有权访问它们,请检查您的PHP错误日志。

您的主机很可能尚未为负责PHP过程的帐户启用写入权限。你需要看看他们是否可以启用它。

答案 3 :(得分:0)

好的,问题(部分)已经解决了。我改变了productimages的权限......但是这个过程的成功需要777的许可......虽然不是很安全。这是我的结构,也许你可以看到问题......

以上脚本位于products.php

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

答案 4 :(得分:0)

your own answer中,您说:

  

好的,问题(部分)已经解决了。我改变了productimages的权限......   但该过程的成功需要777许可......虽然不是很安全

解决此问题的最佳方法是将目录的所有权更改为Web服务器运行的用户。但是,这将需要root访问服务器(或sudo命令),这是您最不可能的。所以这是一个解决方法:

  1. 重写您的脚本以检查productimages是否存在,如果不存在,则创建它:

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

  2. 然后,删除productimages目录。您将让脚本为您重新创建它。如果是这样,网络服务器的用户将拥有该脚本。

  3. 为了实现这一目标,chmod 777 *父目录。 这只是暂时的,并允许脚本创建目录。

  4. 运行脚本。确保它创建了productimages目录。如果有,chmod 755支持父母指导。

  5. 这应该使您能够获得所需的权限,并控制目录的访问权。