【问题标题】:How can I move a file from one location to another?如何将文件从一个位置移动到另一个位置?
【发布时间】:2015-06-12 20:13:36
【问题描述】:

我正在尝试将文件从一个地方移动到另一个地方。在这种情况下,它是我的用户个人资料图片。由于我根据他们的用户名存储我的用户个人资料图片,所以当他们更改用户名时。我需要移动他们的个人资料照片,否则图片链接将被破坏。

我在这里试过了:

if ( $user->username != Input::get('username')) {
    $new_path = public_path().'/img/logo/'. Input::get('username').'/'.$user->logo_path;
    $old_path = public_path().'/img/logo/'. $user->username.'/'.$user->logo_path;
    $move = File::move($new_path, $old_path);
    $delete = File::delete($old_path);
}

我不断得到:

有什么建议吗?

【问题讨论】:

  • 目录是否存在?如果没有,请先创建它。
  • delete 毫无意义。移动文件会将文件从其原始位置删除。

标签: php laravel laravel-5


【解决方案1】:

您将文件移动到错误的方向。

应该是$move = File::move($old_path, $new_path);

...换句话说,第一个参数应该是旧文件位置,第二个参数应该是新文件位置...你有它倒退。 :)

来自Laravel Docs

将文件移动到新位置

存储::move('old/file1.jpg', 'new/file1.jpg');

此外,如上所述,您也不应该拥有 File::delete,因为该文件已被移动并因此被删除。

所以,有两件事:

1) 切换“old_path”和“new_path”和

2) 删除 File::delete 行

【讨论】:

    【解决方案2】:

    我建议您根据用户 ID 而不是用户名存储文件,这样用户名更改时您就不必移动任何内容。只替换现有文件。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-06-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-10-19
      相关资源
      最近更新 更多