0

要访问公共网络空间之外的文件,您需要公共网络空间中的一个脚本,该脚本可以从私人文件夹中获取内容,例如

$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",false); <==注意最后一个参数为假(同步)脚本将发送的内容

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

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

任何想法?

4

1 回答 1

0

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

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

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

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

于 2012-10-02T17:22:19.120 回答