PHP DropboxUploader.PHP不适用于大型文件

PHP DropboxUploader.PHP不适用于大型文件,php,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代码,可以将文件备份到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帐户上有足够的空间

在我的例子中,我不想使用Dropbox SDK,但找到了DropboxUploader.php


我想知道为什么这样做不起作用的建议或原因,或者想知道如何解决这个问题。

一种方法是将备份文件拆分为多个文件来解决这个问题。tararchiver有一种创建多部分归档的方法。请看一看:

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

const DROPBOX_UPLOAD_LIMIT_IN_BYTES = 314572800;
这是300MB。因此,对于400MB文件,此类应在以下代码部分引发异常:

    $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);
    }
$filesize=filesize($source);
如果($filesize<0或$filesize>self::DROPBOX\u UPLOAD\u LIMIT\u以字节为单位){
抛出新异常(“文件“$source”太大($filesize字节)。”,self::CODE\u filesize\u太大);
}
您是否在错误日志中未看到此异常


我不知道这是否是这个Dropbox API的真正当前限制。您可能需要查看他们的文档,看看是否可以增加最大尺寸常量。

谢谢。我试试你的解决办法。所以你是说300Mb的文件可能太大了,服务器无法处理?是的,对于你运行的托管环境来说可能太大了;或者你的网络连接太不稳定;它可能失败的原因还有很多。将文件分为10个meg块很简单,应该可以解决问题。那么我如何修改它以将其分为更小的块呢?系统(“tar-czvf$backup_files$siteroot”)@user3173207是否已打开错误日志记录?如果没有,您应该这样做。我使用的github文件,即DropboxUploader,似乎没有文件restriction@user3173207我访问了您发布的Github链接,查看了该类,并从中提取了上面的代码示例。可能您使用的是没有此限制的旧版本,并且您的调用在实际的Dropbox API上失败。您是对的。我更新了我的DropboxUploader.php,并将限制改为1048576000字节,以便使用它来了解它的工作原理。谢谢。@user3173207您应该检查Dropbox API文档以了解当前的上载限制。