One*_*erd 2 php security upload file-upload file
编写一个小应用程序(其中包括)允许用户上传文件(如图像,.doc或文本文件)作为其发布/提交的一部分.
我们当前的原型只是将文件转储到/ {app_root}/files /,但当然,即使他们没有登录或使用系统,任何人都可以使用它.目标是仅在用户登录时授予对文件的访问权限(查看访问权限),并且实际上可以访问该文件所属的帖子.
所以,简而言之,我正在寻找一个很好的方法来做到这一点.
我想在/ web /(http)文件夹之外创建一个文件夹然后让PHP使用header() commans 以某种方式呈现它,或者,可能只是将文件转储到数据库中?但是,我从未做过任何一个.
虽然我怀疑我最终可以弄明白,但是这里有太多聪明人,我想知道有人会知道某种现有的类或函数库已经这样做了吗?
您必须执行以下操作:
$id.$ext,依此类推.简而言之,您不希望在系统中使用用户的文件名.download.php或者其他什么,获取文件的ID,验证谁登录,如果一切都检出,获取文件,将其读出到浏览器,并发送相应的下载头.这些标题将是这样的:
header('Content-type: application/octet-stream');
header('Content-disposition: attachment; filename=usersuppliedname.txt');
header("Content-Length: " . filesize('../safefiles/1.txt'));
header("Content-Transfer-Encoding: binary");
readfile('../safefiles/1.txt');
exit;
Run Code Online (Sandbox Code Playgroud)
如果你想允许恢复文件等,你可以得到更多的幻想,但上面应该这样做.