PHP DropboxUploader.php不适用于大文件

时间:2014-04-24 23:49:46

标签: php

我有以下PHP代码,可以让我将文件备份到Dropbox:

// Dropbox username/password
$dropbox_email = 'xxxxxxxxxx';
$dropbox_pass = 'xxxxxxxxxxx';

include('DropboxUploader.php');
$uploader = new DropboxUploader($dropbox_email, $dropbox_pass);
$uploader->upload('backup-images.php','Backup/');
$uploader->upload($zipArchiveName,'Backup/');

文件backup-images.php大约是1kb,而$ zipArchiveName大约是400Mb。我好像要上传backup-images.php而不是$ zipArchiveName。

我尝试使用

ini_set('max_execution_time', 0);
ini_set('memory_limit', '-1');

我也尝试修改php.ini,即max_execution_time和memory_limit,但我似乎无法将巨大的文件上传到dropbox。我的保管箱帐户上有足够的空间。

在我的情况下,我不想使用Dropbox SDK,但DropboxUploader.php找到here

我想了解为什么这不起作用的建议或理由或想法如何解决它。

2 个答案:

答案 0 :(得分:0)

通过将备份文件拆分为多个文件,可以解决此问题。 TAR存档程序可以创建多部分存档。看看:https://unix.stackexchange.com/questions/21373/can-i-automate-tars-multi-volume-feature

答案 1 :(得分:0)

该类中有一个常量,它在此行提供上传大小限制:

const DROPBOX_UPLOAD_LIMIT_IN_BYTES = 314572800;

这是300MB。所以这个类应该在以下400MB文件的代码部分抛出一个Exception:

    $filesize = filesize($source);
    if ($filesize < 0 or $filesize > self::DROPBOX_UPLOAD_LIMIT_IN_BYTES) {
        throw new Exception("File '$source' too large ($filesize bytes).", self::CODE_FILESIZE_TOO_LARGE);
    }

您是否在错误日志中看到此异常?

我不知道这是否是此Dropbox API的真正电流限制。您可能需要查看他们的文档,看看是否可以提高最大大小常数。