上传后无法显示图像

时间:2015-06-01 03:46:23

标签: php image

以前,当我尝试将图片上传到数据库时,图片不会显示。当我检查数据库和文件夹中的路径时,它是正确的。

修正db和文件夹中的路径。 enter image description here

enter image description here

然后,当我尝试查看已上传的图片时,表示我没有权限查看该图片。

enter image description here

我也尝试上传不同的照片扩展程序和不同的照片查看器应用程序,我仍然无法查看图像。除此之外,我试过了 W3School PHP5 File Upload.同样的事情发生了,我无法查看我的形象。

这是我的代码:

if (!isset($_FILES['image']['tmp_name'])) 
{
    echo "";
}
else
{
    $file=$_FILES['image']['tmp_name']; 
    $location= $_SERVER['DOCUMENT_ROOT'] . '/ehars/photo/' . $_FILES["image"]["name"];
    move_uploaded_file($_FILES["image"]["tmp_name"], $_SERVER['DOCUMENT_ROOT'] . '/ehars/photo/' . $_FILES["image"]["name"]);
    mysql_query("INSERT INTO photo (location,emp_id) VALUES ('$location','$emp_id')");                  
}

为什么我无法查看我的图片?是因为文档根目录吗?或者是别的什么?请帮帮我谢谢。

更新:

根据下图,我的代码(如上所示)位于 admin 文件夹中。我之所以要将图像保存在/ ehars / photos中,以便每个级别的用户 admin admin2 用户都可以查看已上传的相同照片。如果您能告诉我,为了实现上述目标,最好的方法是什么。再次感谢!

enter image description here

2 个答案:

答案 0 :(得分:1)

如果您的网址方案不是" file://",您应该授权您的浏览器。 我记得由于安全原因,您无法轻松地将CSS和图像链接到本地​​计算机。

答案 1 :(得分:1)

将您的代码更改为此

if (!isset($_FILES['image']['tmp_name'])) 
{
    echo "";
}
else
{
    $file=$_FILES['image']['tmp_name']; 
    $location='/ehars/photo/' . $_FILES["image"]["name"]; //remove $_SERVER['DOCUMENT_ROOT']
    move_uploaded_file($_FILES["image"]["tmp_name"], '/ehars/photo/' . $_FILES["image"]["name"]); // remove $_SERVER['DOCUMENT_ROOT'] . 
    mysql_query("INSERT INTO photo (location,emp_id) VALUES ('$location','$emp_id')");                  
}

为什么tou应该改变你的代码,因为你的服务器不会读取windows路径(c:/apache/htdocs/yourimagespath/yourimages.jpg);它应该读(/images/yourimages.jpg),我认为htdocs是你的根目录。数据库中的结果是/ehars/photo/yourimages.jpg而不是c:/apache/htdoc/ehars/photo/yourimages.jpg。

希望对你有所帮助。