Laravel Удалить файл перед загрузкой нового - PullRequest
0 голосов
/ 11 февраля 2020

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

Почему это возвращает событие File Not Exist, если я уверен, что файл существует в /uploads/images/nerison123_1581390807.PNG

// Get current user
$user = User::findOrFail(auth()->user()->id);
$image_path = $user->profile_image;

//delete the file first if it exists before uploading the new one
if (file_exists($image_path)) {
    @unlink($image_path);
} else {
    echo $image_path;
    echo "<br>";
    return "FILE NOT EXIST";
}

Ответы [ 2 ]

1 голос
/ 11 февраля 2020

Вы можете использовать public_path(), чтобы изменить image_path на full_path:

    if (file_exists(public_path($image_path))) {
        @unlink(public_path($image_path));
    } else {
        echo $image_path;
        echo "<br>";
        return "FILE NOT EXIST";
    }
0 голосов
/ 11 февраля 2020
   $image = $request->file('image');
        $slug = str_slug($request->title);
        if (isset($image))
        {
            $currentDate = Carbon::now()->toDateString();
            $imagename = $slug.'-'.$currentDate.'-'. uniqid() .'.'. $image->getClientOriginalExtension();
            $image_resize = Image::make($image->getRealPath());   
            $image_resize->resize(1600,1066);
            if (!file_exists('storage/uploads/post'))
            {
                mkdir('storage/uploads/post',0777,true);
            }
            unlink('storage/uploads/post/'.$post->image);
            $image_resize->save('storage/uploads/post/'.$imagename);
        }else{
            $imagename = $post->image;
        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...