Как перенести файл в php Laravel 5?

Я пытаюсь переместить файл из одного места в другое. В этом случае это изображение моего profile picture пользователя. Поскольку я храню базу данных профиля пользователя на своем username , поэтому, когда они меняют свое username . Мне нужно будет переместить фотографию своего профиля, иначе ссылка на изображение будет сломана.

Я попробовал это здесь

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

Я продолжал получать

введите описание изображения здесь

Любые предложения для меня?

Вы перемещаете файл в неправильном направлении.

Он должен быть $move = File::move($old_path, $new_path);

… другими словами, первым аргументом должно быть расположение OLD-файла, вторым аргументом должно быть местоположение NEW-файла … у вас есть это в обратном порядке. 🙂

Из документов Laravel

Переместить файл в новое место

Хранение :: move ('old / file1.jpg', 'new / file1.jpg');

Кроме того, как было сказано выше, вы не должны иметь File :: delete либо с момента перемещения и удаления файла.

Итак, две вещи:

1) Переключите «old_path» и «new_path» и

2) Удалите строку File :: delete

Я предлагаю вам хранить файлы на основе идентификатора пользователя вместо имени пользователя, таким образом вам не придется ничего перемещать при изменении имени пользователя. Только замените существующий файл.