【发布时间】:2012-02-09 12:41:18
【问题描述】:
在我的托管服务提供商升级服务器 (Debian) 和 PHP(从 5.2.6 到 5.3.2)后,我的网站上的文件下载脚本出现问题。小于 100MB 的文件可以正常下载,但大于 100MB 的文件只能下载为 156 字节的文件……这是我的下载脚本:
class Download_Controller extends Website_Controller
{
public function index()
{
if (isset($_GET['file'])) {
$file = $_GET['file'];
$filORM = ORM::factory('file')->where('filename', $file)->find();
if ($filORM->loaded and $filORM->deleted=='N' and file_exists(APPPATH.'downloads/'.$file) ) {
//we can serve file download
$this->auto_render = false;
$filORM->counter = $filORM->counter + 1;
$filORM->save();
$dl = ORM::factory('download');
$dl->download_file_id = $filORM->id;
$dl->created = time();
$dl->country_id = $this->country->id;
$dl->ip = $this->_getRealIpAddr();
$dl->browser = Kohana::user_agent('browser');
$dl->version = Kohana::user_agent('version');
$dl->platform = Kohana::user_agent('platform');
$dl->save();
return download::force(APPPATH.'downloads/'.$file);
}
else {
$this->download_error();
}
}
else {
//else here we load download center UI
$this->section();
}
}
}
我正在使用 Kohana PHP 框架。 2.3.x 版。
【问题讨论】:
-
你有访问服务器的权限吗?还是托管服务器?
-
那些 156 字节的文件的内容是什么?有什么特别的吗?
-
主要是 EXE(应用程序安装程序),也尝试了照片的 ZIP 文件。结果相同。您可以在这里尝试:dewesoft.com/download?file=DEWESoft_FULL_7_0_4.exe (130MB) 或 dewesoft.com/download?file=ds-minitaur-photos.zip (194MB)。这个下载很好,因为它小于 100MB dewesoft.com/download?file=SIRIUS_photos_Press_Quality.zip (18MB)
-
这是我下载的,错误信息很清楚:“致命错误:在/home/www-data/system/helpers中允许的内存大小为134217728字节已用尽(试图分配141637633字节) /download.php 第 93 行"
-
@Maerlyn 你在哪里看到这个错误?