js使用xmlhttp访问非公共文件

时间:2012-10-02 17:11:01

标签: php javascript xmlhttprequest

要访问公共网站空间之外的文件,您需要在公共网站空间中提供可以从私人文件夹中获取内容的脚本,例如

$allowedFiles = array(
    1 => '/path/to/private/space/on/server/file1.txt',
    2 => '/path/to/private/space/on/server/file2.txt',
    3 => '/path/to/private/space/on/server/file3.txt',
    4 => '/path/to/private/space/on/server/file4.txt',
);

$id = filter_var($_GET['id'], FILTER_VALIDATE_INT);

if (isset($allowedFiles[$id])) {
    readfile($allowedFiles[$id]);
}

现在你做的时候

xmlhttp.open( “GET”, “?file.php ID = 4”,假); < ==注意最后一个参数是假的(同步) 该脚本将发送

的内容

/path/to/private/space/on/server/file4.txt 给客户。

这段代码适用于小文件,但是当文件更大,即5 mgbytes时,此代码会失败。

任何想法?

1 个答案:

答案 0 :(得分:0)

检查您的php.ini并尝试将upload_max_filesizepost_max_size值修改为更高的值。

  

将您想要强制下载的所有文件放在目录中,   并在你的.htaccess中为该目录设置。

<Files *.*>
ForceType applicaton/octet-stream
</Files>

在此帖子中找到:http://www.sitepoint.com/forums/showthread.php?700250-PHP-File-%28Size%29-Download-Limit 还有其他一些解决方案。