上传后无法显示图片

7
以前,当我尝试将图像上传到数据库时,图像无法显示。当我检查数据库和文件夹中的路径时,它是正确的。
数据库和文件夹中的路径都是正确的。 enter image description here

enter image description here

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

enter image description here

我也尝试了上传不同扩展名的图片和使用不同的图片查看器应用程序,但仍无法查看图片。除此之外,我还尝试了 W3School PHP5 文件上传。同样的事情发生了,我无法查看我的图片。
这是我的代码:
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 和 user 都可以查看已上传的相同照片。如果您能建议我实现上述目标的最佳方法,那就太感谢了!

enter image description here


服务器上设置了哪些权限? - Huey
http://answers.microsoft.com/en-us/windows/forum/windows_8-files/window-photo-viewer-cant-open-this-picture-because/05e31f84-75ab-4772-84a5-5ce0e6e71f61 - Young
@Huey 抱歉,我是新手,请问您所说的服务器权限集是什么意思? - amln_ndh
@Huey,你永远不应该需要755权限。444是静态内容所需的最宽松权限。访问它的脚本可能需要644权限,以便可以读/写文件位置,但仅此而已。图像不需要执行权限:如果它们是使用图像扩展名上传的脚本,则执行权限是确保您最终会得到一个受损系统的最佳方法。 - Mike 'Pomax' Kamermans
2个回答

1
如果您的URL方案不是“file://”,则应授权您的浏览器。 由于安全原因,我记得您不能轻松地将CSS和图像链接到本地机器。

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')");                  
}

你应该修改代码,因为服务器无法读取Windows路径(c:/apache/htdocs/yourimagespath/yourimages.jpg);它应该读取(/images/yourimages.jpg),我假设htdocs是你的根目录。在你的数据库中,结果是/ehars/photo/yourimages.jpg而不是c:/apache/htdoc/ehars/photo/yourimages.jpg。
希望这能对你有所帮助。

您好,感谢您的帮助。我想您所说的关于文件夹路径的问题是正确的。我已经尝试删除代码中的 $SERVER['DOCUMENT_ROOT']。但是,我的照片文件夹中没有我上传的图片。我已经更新了我的问题描述,以帮助您更好地理解我的问题。再次感谢您! - amln_ndh

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接