如何将文件从一个位置移动到另一个位置?

时间:2015-06-12 20:13:37

标签: php laravel laravel-5

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

我在这里尝试过:

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);
}

我一直在:

enter image description here

有什么建议吗?

2 个答案:

答案 0 :(得分:11)

您正在以错误的方向移动文件。

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

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

来自Laravel Docs

  

将文件移至新位置

     

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

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

所以,有两件事:

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

2)删除File :: delete行

答案 1 :(得分:0)

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

相关问题