Laravel在Google云端硬盘中上传任意大小的文件

时间:2017-09-10 12:16:08

标签: php file-upload google-drive-api laravel-5.4

我目前正在开发一个运行在PHP 7上的Laravel 5.4应用程序。我正在使用Google Drive作为我的存储。我正在尝试上传大文件,大小为200-300 mb或10-12 kb的小文件到我的谷歌使用nao-pon/flysystem驱动存储。为此,我已按照本教程:https://gist.github.com/ivanvermeyen/cc7c59c185daad9d4e7cb8c661d7b89b。 我已经改变了我的php.ini:

post_max_size = 800M

upload_max_filesize = 700M

我可以上传小文件。当我尝试上传大文件时出现问题,大小为200-250 mb,格式化的memory_limit超过了我的错误。

我使用过此控制器方法

$files = $request->file('files');
if($request->hasFile('files')){

foreach ($files as $file) {

$name = $file->getClientOriginalName();
$disk = Storage::disk('google'); 
$disk->put($name, File::get($file));

     }
      }

所以,我搜索了谷歌,如何在不超越

的情况下上传大文件
memory_limit 

我在Amazon S3上得到了这个,我为Google驱动器修改了它:

$disk = Storage::disk('google');
$disk->put($name, fopen($file, 'r+'));

但是,现在我在尝试上传任意大小的文件(10kb-300mb)时遇到了另一个错误:

(1/1) ErrorException
A non well formed numeric value encountered

in GoogleDriveAdapter.php (line 1143)
at HandleExceptions->handleError(8, 'A non well formed numeric value encountered', '/app/vendor/nao-pon/flysystem-google-drive/src/GoogleDriveAdapter.php', 1143, array('iniName' => 'memory_limit', 'val' => '128M', 'last' => 'm'))in GoogleDriveAdapter.php (line 1143)]

此方法适用于本地存储。但不适用于谷歌驱动器。 所以,我的问题是,有没有任何方法或包装,这很简单,我可以很容易地实现它上传任何大小的文件到我的谷歌驱动器没有任何hassel。

1 个答案:

答案 0 :(得分:0)

nao-pon/flysystem包中存在错误。使用新包或  composer update将解决问题。