我正在尝试使用Compass API将大文件上传到rackspace云: http://www.compasswebpublisher.com/php/rackspace-cloudfiles-php-api
它适用于小文件(jpg)但当文件超过100MB时脚本崩溃。嗯,确切地说,脚本就停止了。
$cf = new Compass_Service_Rackspace_Cloudfiles('myid', 'myApiKey', Compass_Service_Rackspace_Cloudfiles::UK_AUTHURL);
$cf->auth();
set_time_limit(60*60);
ini_set("memory_limit","256M");
ini_set('upload_max_filesize', '700M');
ini_set('post_max_size', '700M');
$contents = file_get_contents($path);
$cf->putObject('container/filename', $contents);
我第一次认为这是一个内存问题,但即使使用256M脚本也无法正常工作。
知道为什么它不起作用吗?
非常感谢!
此致 PV
答案 0 :(得分:2)
我不确定您尝试使用哪种脚本,但由于脚本超时而可能会崩溃,除非它正在处理。
我不建议您使用表单定期上传100 MB文件,除非绝对必要并且脚本编写得很好以处理限制。这就是FTP的用途。
答案 1 :(得分:0)
作为第一个解决方案,我建议你传递0 set_time_limit
函数,因为它会使脚本能够运行到最后而不会超时。
作为第二个解决方案,我建议你使用plupload库作为前端,这将允许你按块上传文件。点击此处了解详情http://www.plupload.com/
答案 2 :(得分:0)
您可以使用raskcpace云API将文件发送到rackspace云文件。
上传文件的工作流程
您可以使用PHP的input:// stream和XMLHttpRequest将文件以块的形式上传到您的网络服务器。更多信息http://www.webiny.com/blog/2012/05/07/webiny-file-upload-with-html5-and-ajax-using-php-streams/
找到rackspace API