首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >php,图像下载

php,图像下载
EN

Stack Overflow用户
提问于 2009-05-03 17:13:18
回答 6查看 1.9K关注 0票数 0

当用户上传图像时,我将其保存到htdocs目录下的图像文件夹中。因此,任何没有登录到站点的用户都可以输入url/images/"name“来获取它。预防这种情况的最好方法是什么?因为浏览只是请求用户直接在地址栏中键入图像的位置。我正在考虑在检查会话详细信息后,使用脚本从目录中下载每个图像文件。你认为这将是一个好的方法,如果是的话,你能给我推荐一个脚本吗?我不想用数据库。我认为这将是缓慢的。或者如果这是更好的方法,请让我知道。

THnks

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2009-05-03 17:24:24

您可以将其放在htdocs/目录之外,然后将图像/目录mod_rewrite到image.php或其他目录。因此url/images/test.jpg将被转换为image.php?path=test.jpg

image.php可能看起来像这样:

代码语言:javascript
复制
<?php
if($loggedin) {
    header("Content-Type: image/jpeg");
    echo file_get_contents("../images/".$_GET["path"]);
}
?>

别忘了清理输入!您不希望用户访问任意文件。

票数 8
EN

Stack Overflow用户

发布于 2009-05-03 22:43:42

我建议使用fpassthru,而不是使用echo file_get_contents(...),以避免出现大文件可能出现的“内存不足”错误。

票数 3
EN

Stack Overflow用户

发布于 2009-05-03 17:17:11

是的,您可以有一个只在末尾添加用户and并显示图像的image.php文件。实际上,它并没有那么多代码。

readfile()文档中提供了一个示例。但这会下载图像,您可以跳过附件标题并使用内容类型标题。

您可以将图像位置保存在数据库中,这样就不会太慢。因为我不建议将纯图像数据存储在数据库中

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/817521

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档