【问题标题】:Copying a file using 2 disks with Laravel使用 Laravel 使用 2 个磁盘复制文件
【发布时间】:2018-05-14 21:11:11
【问题描述】:

我在 Laravel 中有 2 个磁盘。

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

我尝试过这种方式:

 Storage::disk('FTP')->copy('old/file1.jpg', 'new/file1.jpg');

这只会复制已经在 FTP 服务器中的文件。我也阅读了文档,似乎没有办法将两者结合起来上传文件。

有什么建议吗?

【问题讨论】:

    标签: php laravel ftp


    【解决方案1】:

    Storage::getStorage::put 的简单组合应该可以解决问题。

    Storage::disk('FTP')->put('new/file1.jpg', Storage::get('old/file1.jpg'));
    

    【讨论】:

    • 这是流式传输副本还是一次性完成?
    • @JonMcClung 这将是两个独立的步骤 - 服务器必须在将文件重新上传到另一个位置之前完全下载文件。
    【解决方案2】:

    @ceejayoz 有一个很好的答案,但正如 cmets 中所述,它先获取,然后再写入。

    为了使用流,可以使用以下代码:

    Storage::disk('FTP')->writeStream('new/file1.jpg', Storage::readStream('old/file1.jpg'));
    

    【讨论】:

    • 请注意,如果该位置已有文件,则会引发 FileExistsException
    猜你喜欢
    • 1970-01-01
    • 2019-02-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-17
    • 2013-09-09
    • 2016-02-25
    相关资源
    最近更新 更多