Как заменить и удалить ранее загруженные файлы при редактировании записи в Laravel 4.2 - PullRequest
0 голосов
/ 17 апреля 2019

Я использую laravel 4.2, потому что этот проект существует уже много лет. :)

Теперь, как я могу заменить и удалить предыдущие файлы, загруженные публично? каталог, когда редактировать запись? С учетом следующего кода контроллера (метод обновления):

public function update($id)
        {
            $idd = Sentry::getUser()->id;
            try {
                $validator = Validator::make(
                    Input::all(),
                    array(
                        'first_name' => 'required',
                        'last_name' => 'required',
                        'eng_certificate' => 'image|mimes:png,jpeg,jpg|max:1100',
                        'profile_img' => 'image|mimes:png,jpeg,jpg|max:1100',
                    )
                );
                if ($validator->passes()) {
                    $profile = User::find($id);
                    $profile->first_name = Input::get('first_name');
                    $profile->last_name = Input::get('last_name');    
                    if (Evidence::where('user_id', $idd)->count() == 0) {
                        $evidence = new Evidence;
                        $evidence->user_id = $idd;
                        $evidence->created_at = jDate::forge()->time();
                    } else {
                        $evidence = Evidence::where('user_id', $idd)->first();
                        $evidence->updated_at = jDate::forge()->time();
                    }
                    if (Input::hasFile('eng_certificate')) {
                        $image = Input::file('eng_certificate');
                        $destinationPath = 'uploads/evidence';
                        $filename = $image->getClientOriginalName();
                        $extension = $image->getClientOriginalExtension();
                        $image_filename = sha1($filename) . '-' . rand(0, 1000) . '.' . $extension;
                        $image_uploadSuccess = $image->move($destinationPath, $image_filename);
                        if ($image_uploadSuccess) {
                            $evidence->eng_certificate = $image_filename;
                            $evidence->save();
                        }
                    }
                    if (Input::hasFile('profile_img')) {
                        $image = Input::file('profile_img');
                        $destinationPath = 'uploads/evidence/profile_img/';
                        $filename = $image->getClientOriginalName();
                        $extension = $image->getClientOriginalExtension();
                        $image_filename = sha1($filename) . '-' . rand(0, 1000) . '.' . $extension;
                        $image_uploadSuccess = $image->move($destinationPath, $image_filename);
                        if ($image_uploadSuccess) {
                            $evidence->profile_img = $image_filename;
                            $evidence->save();
                        }
                    }
                    $profile->save();
                    return Redirect::route('cpanel.home')->with('success', 'اطلاعات پروفایل شما با موفقیت بروز گردید.');
                }
                else {
                    return Redirect::back()->withInput()->withErrors($validator->messages());
                }
            }
            catch (LoginRequiredException $e) {
                return Redirect::back()->withInput()->with('danger', $e->getMessage());
            }
        }

Как я могу это исправить? Спасибо.

Ответы [ 2 ]

0 голосов
/ 17 апреля 2019

Вы можете взаимодействовать с файловой системой, используя: Файловая система Laravel

Например:

Storage::delete('file.jpg');

См .: https://laravel.com/docs/5.8/filesystem#deleting-files

0 голосов
/ 17 апреля 2019
  1. узнать текущее местоположение файла
  2. используйте функцию php unlink https://www.w3schools.com/php/func_filesystem_unlink.asp
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...