Я пытаюсь переместить файл из одного места в другое. В этом случае это изображение моего 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
Я предлагаю вам хранить файлы на основе идентификатора пользователя вместо имени пользователя, таким образом вам не придется ничего перемещать при изменении имени пользователя. Только замените существующий файл.