我使用Zend Frameworks Zend_Service_Amazon_S3类从codeigniter应用程序中的Amazon S3服务器下载文件。
我的脚本首先检查用户是否有权下载文件,然后尝试强制从S3服务器下载它。当下载文件是一个小测试zip(661字节)时,我有它工作,但当我尝试下载一个大视频拉链(150 MB +)时,我只是得到一个空白屏幕。
代码如下:
$this->load->helper('download');
$s3 = new Zend_Service_Amazon_S3();
force_download($video->filename(), $s3->getObject($video->s3_object_path()));
其中$ video是我代表视频的模型实例。
大小似乎是这里的问题,这是我在两个文件之间看到的唯一区别。
理想情况下,我希望S3中的数据绕过托管应用程序的服务器。 codeigniter中的force_download函数设置“Content-Disposition:attachment;”头。从这里阅读其他相关帖子,这应该绕过服务器吗?
答案 0 :(得分:0)
您应该打开错误报告并查看实际错误,或检查错误日志。我的猜测是,由于文件较大,脚本可能会超时。尝试在致电set_time_limit(0);
之前添加force_download()
。