首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP Evo: ModX readfile() in snippet?

PHP Evo: ModX readfile() in snippet?
EN

Stack Overflow用户
提问于 2012-10-09 08:35:14
回答 1查看 466关注 0票数 0

我有一个使用readfile()下载大文件(1.3)的脚本。

如果我创建了一个只包含脚本的.php页面,它可以很好地工作,但是如果我将相同的脚本放在一个代码片段中,并将它放在一个页面上,则没有任何反应。

ModX是怎么阻止下载的呢?任何建议都是非常好的,谢谢!

编辑代码:

代码语言:javascript
复制
$file = $_SERVER['DOCUMENT_ROOT']."/movie.mov";
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;
};
EN

回答 1

Stack Overflow用户

发布于 2012-10-09 09:04:17

Modx确实有一个最大文件大小设置,最大上传大小upload_maxsize,但这是针对文件管理器的。我怀疑这是你的问题。

让我们看看脚本和错误日志。

更新

刚刚测试了你的小片段,只做了几个小改动~它工作得很好。

代码语言:javascript
复制
$base_path = $modx->config['base_path'];

$movie = 'frankenweenie-mrwhiskers_r640s.mov';

$file = $base_path.$movie;


if (file_exists($file)) {

    echo 'file exists '.filesize($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);

    return true;

}else{

    echo 'file does not exist';

    return false;

}

使用$modx->config‘’base_path‘不是你的问题,它也可以使用服务器变量,这只是一个好习惯。返回true/false的modx期望它的代码片段返回true、false或$output……而且,这不是你的问题,它没有工作。

开始查看你的php设置,我想可能是内存限制的问题。查看php文档,看看它是否需要足够的内存来读取这种大小的文件。即使它表明“大小无关紧要”

在脚本本身中启用错误日志记录&检查服务器错误日志。

它能处理小文件吗?然后看看这里:PHP readfile() and large downloads

祝好运!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12791343

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档