2

我正在尝试使用 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 脚本也无法正常工作。

知道为什么它不起作用吗?

非常感谢!

问候,光伏

4

3 回答 3

2

我不确定您要使用什么脚本,但它可能由于脚本超时而崩溃,除非它得到处理。

我不建议您定期使用表单上传 100 MB 的文件,除非绝对必要并且脚本编写得很好以处理限制。这就是 FTP 的用途。

于 2011-02-03T19:47:32.090 回答
0

您可以使用 raskcpace 云 API 将文件发送到 rackspace 云文件。

上传文件的工作流程是

  1. 首先将文件上传到您的服务器。
  2. 将文件从网络服务器发送到 rackspace 云文件容器
  3. 从您的网络服务器中删除该文件或保留它以供您选择。

您可以使用 PHP 的 input:// 流和 XMLHttpRequest 将文件分块上传到您的网络服务器。更多信息在这里http://www.webiny.com/blog/2012/05/07/webiny-file-upload-with-html5-and-ajax-using-php-streams/

您可以在https://github.com/rackspace/php-opencloud找到 rackspace API

于 2013-09-10T09:16:28.190 回答
0

作为第一个解决方案,我建议您传递 0set_time_limit函数,因为它会使脚本能够运行到最后而不会超时。

作为第二种解决方案,我建议您使用 plupload 库作为前端,这将允许您按块上传文件。在此处查看更多信息http://www.plupload.com/

于 2012-06-03T05:33:11.047 回答