【问题标题】:Moving files in Laravel 5.2 using Storage::move在 Laravel 5.2 中使用 Storage::move 移动文件
【发布时间】:2016-12-19 21:01:41
【问题描述】:

我希望使用 Storage::move 在 Laravel 5.2 中移动文件。我使用的代码如下:

$file = basename($m);
            $new_path= base_path('mailbox_archive/'.$file);

Storage::move($m, $new_path);

我收到以下错误消息:

[联赛\Flysystem\FileNotFoundException]
在路径中找不到文件: 用户/JamesParsons/Dropbox/虚拟/邮箱/17_10-08
-16_20-49-17.json

路径如下:

$m=/Users/JamesParsons/Dropbox/virtual/mailbox/17_10-08-16_20-49-17.json

$new_path=/Users/JamesParsons/Dropbox/virtual/mailbox_archive/17_10-08-16_20-49-17.json

谢谢

【问题讨论】:

  • 尝试明确地使用完整的:$old_path= base_path('mailbox/'.$file); 然后:Storage::move($old_path, $new_path);
  • 不幸的是@Maraboc
  • 您是否在将其移动到以下代码中后使用此文件(此行之后的代码Storage::move($m, $new_path);)?还是没有其他代码?
  • 没有其他代码,这是移动文件和清除目录的最后动作

标签: php laravel path laravel-5.2


【解决方案1】:

您尝试访问/移动计算机上的文件。但是您在主机/虚拟机/服务器中。这在您的虚拟机等内部不起作用,因此无法访问您的保管箱文件夹。

【讨论】:

  • 但是同样的过程可以在实时服务器上运行吗? @西蒙戴维斯?
  • 为了让它在你的本地/vm/server等上工作,那么你需要在你的服务器/站点中的文件夹/Users/JamesParsons/Dropbox/virtual/,并使用存储磁盘配置。该代码无法逃脱服务器并访问您的HD
  • 应该不成问题,只要我知道它一旦上线就可以工作。这是命令中的最后一个动作,并且所有测试都在这一点上进行,所以不是问题
  • 那么文件夹会在实时服务器上吗?如果是这样,在哪里,并且你不能在你的应用程序上复制它,所以你本地测试通过等等?
  • 文件夹将位于实时应用程序、邮箱和mailbox_archive 将位于应用程序的根目录中。应用程序的根是虚拟的,与实时服务器上的根同名。这是一个正在运行的应用程序的分支。
【解决方案2】:

我把上面的改成

Storage::move($m, $new_path);

File::move($m, $new_path);

【讨论】:

    猜你喜欢
    • 2018-06-06
    • 1970-01-01
    • 1970-01-01
    • 2016-06-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-08
    • 2014-10-13
    相关资源
    最近更新 更多