使用Laravel使用2个磁盘复制文件

prg*_*grm 8 php ftp laravel

我在Laravel有2个磁盘.

一个是本地磁盘,另一个是我需要上传文件的FTP服务器.它们都配置正确.

我这样尝试过:

 Storage::disk('FTP')->copy('old/file1.jpg', 'new/file1.jpg');
Run Code Online (Sandbox Code Playgroud)

这只会复制文件,如果它已经在FTP服务器中.我也阅读了文档,似乎无法将两者结合起来以便上传文件.

有什么建议?

Dan*_*nes 22

@ceejayoz有一个很好的答案,但是正如注释中提到的那样,它先获取然后编写。

为了使用流,可以改为使用以下内容:

Storage::disk('FTP')->writeStream('new/file1.jpg', Storage::readStream('old/file1.jpg'));
Run Code Online (Sandbox Code Playgroud)

  • 请注意,如果该位置已经有一个文件,则会抛出 FileExistsException (3认同)

cee*_*yoz 18

一个简单的组合Storage::getStorage::put应该做的伎俩.

Storage::disk('FTP')->put('new/file1.jpg', Storage::get('old/file1.jpg'));
Run Code Online (Sandbox Code Playgroud)

  • 这会流式传输副本还是一次性完成? (2认同)
  • @JonMcClung这将是两个单独的步骤-服务器将必须完全下载文件,然后才能将其重新上传到另一个位置。 (2认同)