путь к изображению неверен в Laravel - PullRequest
0 голосов
/ 05 августа 2020

Я пытаюсь сохранить путь к изображению, но он не возвращает правильный путь. Выдает следующую ошибку:

Файл «C: \ xampp \ tmp \ php1ADF.tmp» не существует

мой метод обновления

 public function update(User $user,ProfileRequest $request)
    {
        if(is_null($user->avatar))
        {
            if($request->hasfile('avatar'))
            {
                $path=$this->fileUpload($request->file('avatar'));
            }
            else
            {
                $path=null;
            }
        }
        elseif(!empty($user->avatar) && $request->hasfile('avatar'))
        {
            $path=$this->fileUpload($request->file('avatar'));
        }
        else
        {
            $path=$user->avatar;
        }

 $user->update(['name'=>request('name'),'username'=>request('username'),'email'=>request('email'),'password'=> Hash::make(request('password')),'avatar'=>$path,'background'=>$background,'description'=>request('description')]);

        Session::flash('success', 'You have successfully updated a post!');
       return redirect($user->path())->with(['message'=>'Profile updated']);

мой запрос файл

public function rules()
    {
        return [
            'name'=> 'string|required|max:255',
            'username'=> 'string|required|max:255|alpha_dash', //if the name exixts, so ignore that one
            'avatar'=>'file|mimes:jpeg,png,gif,jpg|max:2048',
            'email'=> 'email|required|string',
            'password'=>'required|min:10|string',
            'background'=>'file|mimes:jpeg,png,gif,jpg|max:2048',
            'description'=>'string|max:255',
        ];

мой файл лезвия

 <form method="POST"  action="{{$user->path() }}" enctype="multipart/form-data">
        @csrf
        @method('PATCH')
<div id="flip" class="p-5 bg-gray-200">Basic Info</div>
            <div id="panel">
                <div class="mb-6 mt-6">
                    <label for="avatar">Select Profile to Upload</label>
                    <input id="avatar" type="file" class="@error('avatar') is-invalid @enderror" name="avatar">
                    @error('avatar')
                    <div class="text-red-800">{{ $message }}</div>
                    @enderror
                </div>
                <div class="mb-6">
                    <label for="name">Name</label>
                    <input id="name" type="text" class="@error('name') is-invalid @enderror border border-gray-400 p-2 w-full" name="name" value="{{$user->name}}">
                    @error('name')
                    <div class="text-red-800">{{ $message }}</div>
                    @enderror
                </div>
                <div class="mb-6">
                    <label for="username">Username</label>
                    <input id="username" type="text" name="username" class="@error('username') is-invalid @enderror border border-gray-400 p-2 w-full" value="{{$user->username}}">
                    @error('username')
                    <div class="text-red-800">{{ $message }}</div>
                    @enderror
                </div>
                <div class="mb-6">
                    <label for="email">Email</label>
                    <input id="email" type="email" name="email" class="@error('email') is-invalid @enderror border border-gray-400 p-2 w-full" value="{{$user->email}}">
                    @error('email')
                    <div class="text-red-800">{{ $message }}</div>
                    @enderror
                </div>
                <div class="mb-6">
                    <label for="password">Password</label>
                    <input id="password" type="password" name="password" class="@error('password') is-invalid @enderror border border-gray-400 p-2 w-full" >
                    @error('password')
                    <div class="text-red-800">{{ $message }}</div>
                    @enderror
                </div>
                <div class="mb-6">
                    <label for="password-confirm">Confirm Password</label>
                    <input id="password-confirm" type="password" name="password-confirm" class="@error('password-confirm') is-invalid @enderror border border-gray-400 p-2 w-full" >
                    @error('password-confirm')
                    <div class="text-red-800">{{ $message }}</div>
                    @enderror
                </div>



            </div>
        <div id="main" class="p-5 bg-gray-200">Background</div>
            <div id="child">
                <div class="mb-6 mt-6">
                    <label for="background">Select Background image to Upload</label>
                    <input id="background" type="file" class="@error('background') is-invalid @enderror" name="background">
                    @error('background')
                    <div class="alert alert-danger">{{ $message }}</div>
                    @enderror
                </div>
                <div class="mb-6">
                    <label for="description">Description</label>
                    <input id="description" type="text"  name="description" class="@error('description') is-invalid @enderror border border-gray-400 p-2 w-full" value="{{$user->description}}">
                    @error('description')
                    <div class="alert alert-danger">{{ $message }}</div>
                    @enderror
                </div>
            </div>
        <div class="mt-6">
            <button type="submit" class="bg-blue-500 text-white rounded py-2 px-4 hover:bg-blue-800'">Submit</button>
        </div>
    </form>

Я сохраняю путь через функцию

 protected function fileUpload($data)
    {
        $file=$data;
        $fileWithExt = $file->getClientOriginalName();
        $filename = pathinfo($fileWithExt,PATHINFO_FILENAME);
        $extension = $file->getClientOriginalExtension();
        $nameoffile = $filename.'_'.time().'.'.$extension;
        $path = $file->move(public_path('images'),$nameoffile);
        $path = $nameoffile;
        return $path;
    }

Я проверил функцию, но она возвращает правильную путь, любая помощь будет оценена

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...