PHP不同的服务器和安全性
我目前有几个服务器,主要是一个web服务器和一个内部存储服务器。数据存储在SQL server数据库中 在不给用户太多访问权限的情况下,如何从存储服务器中提取特定文档以从web服务器显示给用户 例如,我在存储服务器上有文档c:/memberID/info.pdf,我想通过PHP向客户机显示它,而不让他们访问内部存储服务器PHP不同的服务器和安全性,php,mysql,Php,Mysql,我目前有几个服务器,主要是一个web服务器和一个内部存储服务器。数据存储在SQL server数据库中 在不给用户太多访问权限的情况下,如何从存储服务器中提取特定文档以从web服务器显示给用户 例如,我在存储服务器上有文档c:/memberID/info.pdf,我想通过PHP向客户机显示它,而不让他们访问内部存储服务器 我希望这是有意义的 查看readfile以及标题 <?php $file = 'monkey.gif'; if (file_exists($file)) { h
我希望这是有意义的 查看
readfile
以及标题
<?php
$file = 'monkey.gif';
if (file_exists($file)) {
header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename='.basename($file));
header('Content-Transfer-Encoding: binary');
header('Expires: 0');
header('Cache-Control: must-revalidate');
header('Pragma: public');
header('Content-Length: ' . filesize($file));
ob_clean();
flush();
readfile($file);
exit;
}
?>
查看
readfile
以及标题
<?php
$file = 'monkey.gif';
if (file_exists($file)) {
header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename='.basename($file));
header('Content-Transfer-Encoding: binary');
header('Expires: 0');
header('Cache-Control: must-revalidate');
header('Pragma: public');
header('Content-Length: ' . filesize($file));
ob_clean();
flush();
readfile($file);
exit;
}
?>
仅当存储服务器安装在Web服务器上或文件通过http私人可用时,此操作才有效。我可以通过\\server从Web服务器访问存储服务器。我的文件以\\server\memberno.pdf格式存储在数据库中-我想将链接显示为“document.pdf”。如何实现此目的?只需更改变量$file
,以包含要提供服务的文件的路径:$file='\\server\memberno.pdf'
(确保在必要时适当转义)。tftd,我知道它只适用于可访问的文件,但据我所知,这些文件可以从web服务器访问OK,所以我已经设法解决了大部分问题。接下来我要讨论的是,如何在不通过$u请求传递文件路径的情况下,将其转换为链接中的锚定标记?这将是一个新问题。但我建议使用散列
、路径为的文件创建一个数据库,并在URL中传递散列。这仅在存储服务器安装在Web服务器上或文件通过http私人可用时才起作用。我可以通过\\server从Web服务器访问存储服务器。我的文件以\\server\memberno.pdf格式存储在数据库中-我想将链接显示为“document.pdf”。如何实现此目的?只需更改变量$file
,以包含要提供服务的文件的路径:$file='\\server\memberno.pdf'
(确保在必要时适当转义)。tftd,我知道它只适用于可访问的文件,但据我所知,这些文件可以从web服务器访问OK,所以我已经设法解决了大部分问题。接下来我要讨论的是,如何在不通过$u请求传递文件路径的情况下,将其转换为链接中的锚定标记?这将是一个新问题。但是我建议用散列
创建一个数据库,用路径
创建一个文件,然后将散列传递到URL中