php如何配置某个文件夹的所有文件登录后才允许访问

zcjsgs 2018-08-11 09:49:38
请教个问题,因为我上传了一些文件和图片放在某个文件夹中,发现只要知道这个文件的名称,
随便谁都可以查看,而我想要求这些文件和图片必须要登录后才允许访问,不知道怎么限制权限
在网上查了一些资料,有人建议说把文件放在网站根目录以外的目录,这样通过url就访问不到了。
然后用php来读取并输出文件里的内容来访问。
我照着这样做了,发现下载时这样做可以,
但对于图片我不是下载而是通过URL显示就不知道该怎么办了,请高手指点一下,谢谢!
...全文
341 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
zcjsgs 2018-08-16
  • 打赏
  • 举报
回复
结贴(上面代码中的访问数据库的代码是自己写的类,反正大概就是这个意思)
zcjsgs 2018-08-16
  • 打赏
  • 举报
回复
照着楼上的办法解决了问题,非常感谢!

<?php
ob_start();
//这里判断是否登录
session_start();
if(isset($_SESSION["LOGIN_USER_NAME"])==false){
echo "please login first.";
exit();
}

include_once("general/aa_include/php/dbopen.php");
//这里是保存数据文件的真实位置,为保证安全,放在网站以外
$rootdir1=$_SERVER['DOCUMENT_ROOT'];
$rootdir2=substr($rootdir1, 0,sizeof($rootdir1)-9);
$filesavepath= $rootdir2."upload_file/";
//从数据库中取得真实文件名
$id=$_GET["id"];
$sql1="select * from tbuploadfile where fileid=$id";
$rec1=$g_mysql->doquery($sql1);

$filerealname=$rec1->VStr("filerealname");
$filesavename=$rec1->VStr("filesavename");
$file1=$filesavepath.$filesavename;
//文件信息
$info=getimagesize($file1);
header("Content-type:{$info['mime']}");
//写入文件
ob_clean();
readfile($file1);
exit();



?>
xuzuning 2018-08-12
  • 打赏
  • 举报
回复
手册中就有示例
xuzuning 2018-08-12
  • 打赏
  • 举报
回复
$size = getimagesize($filename);
header("Content-type: {$size['mime']}");
readfile($filename);
zcjsgs 2018-08-12
  • 打赏
  • 举报
回复
限制下载的方法就是不把文件放在网站目录里,放在其他文件夹下面,通过url无法访问,
比如网站是放在d:\webroot目录下的,那么文件我放在d:\file目录下面
然后在php中如果需要下载时用下面的代码直接写入文件:


ob_clean();
Header( "Content-type: application/octet-stream ");
Header( "Accept-Ranges: bytes ");
Header( "Accept-Length: " .filesize($filename));
header( "Content-Disposition: attachment; filename= ".$file2);

//echo file_get_contents($filename);
readfile($filename);


xuzuning 2018-08-12
  • 打赏
  • 举报
回复
那就把你限制下载的代码贴出来
xuzuning 2018-08-11
  • 打赏
  • 举报
回复
那不是一样吗?只不过http头不一样而已
zcjsgs 2018-08-11
  • 打赏
  • 举报
回复
不好意思哈,我水平有限,能说详细点吗?谢谢!
我主要是就想保证文档的安全,没有登录不能访问,登录后可以通过url访问

21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧