Rumah >pembangunan bahagian belakang >tutorial php >用iframe指到非htdocs文件夹以外的文件

用iframe指到非htdocs文件夹以外的文件

WBOY
WBOYasal
2016-06-23 14:28:12951semak imbas

PHP

想用iframe指到非htdocs文件夹以外的文件,因为该文件是file.txt,如果直接放到htdocs之下,就保护不了,因为不需要登录也可以打开file.txt。如果把file.txt放到d:\txt\file.txt,在http://mydomain.com/file.txt是找不到的。用http://mydomain.com/file.php来呼叫file.txt,因为file.php是有登入保护的。

回复讨论(解决方案)

不在 web 服务器管理范围的文件,就不能用 http 协议访问
你需要通过 php 程序中转

哪到底该如何做呢? 我的filelist页码是可以指到任何文件夹的。是否可以修改成嵌入文件打开呢? 页码如下:


error_reporting(0);
$basedir = "c:/filelist";
if(!is_dir($basedir)) $basedir = dirname(__FILE__);
$file_name = $_GET['downfile'];
if(!empty($file_name)){

$file_dir = $basedir . "/" . $file_name;

if(dirname(realpath($file_dir)) 
echo "Permission Denied!";

exit;

}

if (!file_exists($file_dir)) {

echo "File Not Found!";

exit;

} else {

$file = fopen($file_dir,"r");

Header("Content-type: application/octet-stream");

Header("Accept-Ranges: bytes");

Header("Accept-Length: ".filesize($file_dir));

Header("Content-Disposition: attachment; filename=" . $file_name);

echo fread($file,filesize($file_dir));

fclose($file);

exit;

}
}
header("Content-type: text/html; charset=utf-8");
$requestDir = $_GET['dir'];
if(empty($requestDir)){

$dir = $basedir;
}else{

$dir = $basedir . "/" . $requestDir;
}
$dir = realpath($dir);
if($dir  ?>



File Listing














File Listing

Sign Out





















$dirs=@opendir($dir);

$count = 0;

while($file=@readdir($dirs)) {

$b="$dir/$file";

$a=@is_dir($b);

if($a=="1"){

if($file!=".."&&$file!=".") {

if($count 
$count ++;

echo "\n";

echo "\n";

echo "\n";

}

echo "\n";

echo "\n";

echo "\n";

}

}

}

@closedir($dirs);

?>


$predir = realpath($dir . "/../");

if($predir > $basedir) $predir = str_replace($basedir . "/","",$predir);

if($predir == $basedir) $predir = ".";

if($dir > $basedir) echo "Up Level";

?>

Folder
 $basedir ? str_replace($basedir . "/",'',$dir . "/") : '') . urlencode($file)."\">$file




















$dirs=@opendir($dir);

while ($file=@readdir($dirs)) {

$b="$dir/$file";

$a=@is_dir($b);

if($a=="0"){

$size=@filesize("$dir/$file");

$size=$size/1024 ;

$size= @number_format($size,2);

$lastsave=@date("Y-n-d H:i:s",filemtime("$dir/$file"));

echo "\n";

echo "\n";

echo "\n";

echo "\n";

echo "\n";

echo "\n";

}

}

@closedir($dirs);

?>

Filename Date Size Action
$file $lastsave $size KB  $basedir ? str_replace($basedir . "/",'',$dir . "/") : '').urlencode($file)."\">Download



已解决,用以下的代码即可。


$file_handle = fopen("outsidefile/file.txt", "r");

while (!feof($file_handle)) {

$line_of_text = fgets($file_handle);
print $line_of_text . "
";

}

fclose($file_handle);
?>

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel sebelumnya:zend studio设置问题Artikel seterusnya:csdn站点是否使用PHP技术了呢?