如何在PHP中从主域访问子域文件夹

时间:2014-08-30 04:45:26

标签: php apache

我有一个网站 - mysite.com 和一个子域 admin.mysite.com 。我想从主站点访问子域文件夹。子域文件夹是 admin ,与主域位于同一目录级别。

目录组织如下:

root/admin - sub domain folder
root/httpd - main domain folder

我想要访问的内容:

root/admin/images/

发件人:

root/httpd/index.php

PHP脚本必须扫描上面的目录中的图像,然后在主域文档的echo标记中<img>他们的 dir / http 路径。

为什么我需要访问它 - 因为图像是由用户在子域中上传的。 :|

2 个答案:

答案 0 :(得分:0)

define("IMG_DIRECTORY", "you subdomain upload folder");

$filename = $_GET['f'];
$filepath = IMG_DIRECTORY . $filename;

//if file does not exists
if( strlen($filename) == 0 || !is_file($filepath) ){
    header('HTTP/1.0 404 Not Found');
    die("HTTP/1.0 404 Not Found");
}

$path_parts = pathinfo( $filename );
$file_ext   = $path_parts['extension'];

header("Content-type:image/" . strtolower($file_ext));
header("Content-Disposition: inline; filename=".$filename);

//For IE Save as filename bug
if(strstr($_SERVER["HTTP_USER_AGENT"],"MSIE")){
    header("Cache-Control: must-revalidate, post-check=0, pre-check=0"); 
    header("Cache-Control: private",false); 
    header("Pragma: public");
    header("Expires: 0"); 
    header('Content-Transfer-Encoding: Binary');
}

@readfile(str_replace("@","",$filepath));

您可以构建api页面来执行该操作

http://example.com/imageapi.php?f=sample.png

答案 1 :(得分:0)

所以我找到了解决方法。

使用opendir()函数,我能够扫描子域目录中的图像。

$handle = opendir('../admin/images/');

   while($file = readdir($handle)){

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

            echo "<img src='http://admin.mysite.com/images"."/"."$file' />";

        }
     }