簡體   English   中英

在 null 上調用成員 function getClientOriginalName() 時出錯

[英]Error Call to a member function getClientOriginalName() on null

因此,在我的 web 表單上上傳圖像時出現錯誤,這是代碼:

public function newStoreBlog(Request $request)
    {

        $this->validate($request,[
            'title' => ['required', 'string', 'max:255'],
            'category' => ['required'],
            'image' => ['required'],
            'description' => ['required','string'],
        ]);

        $photoFile = $request->file('image');
        Storage::putFileAs('public/photos',$photoFile, $photoFile->getClientOriginalName());

        Article::create([
            'user_id' => Auth::user()->id,
            'category_id' => $request->input('category')->id,
            'title' => $request->title,
            'image' => $request->file('image')->getClientOriginalName(),
            'description' => $request->description,
        ]);

這是我在 web.php 上的路線

Route::post('/myblog/new/store', 'HomeController@newStoreBlog');

這是我的刀片形式

<div class="form-group row">
                <label for="image" class="col-md-4 col-form-label text-md-right">{{ __('Photo') }}</label>
                <div class="col-md-6">
                    <input id="image" type="file" accept="image/png, image/jpg, image/jpeg" class="form-control @error('image') is-invalid @enderror" name="image" value="{{ old('image') }}" required autocomplete="image" autofocus>
                    @error('image')
                    <span class="invalid-feedback" role="alert">
                        <strong>{{ $message }}</strong>
                    </span>
                    @enderror
                </div>
            </div>

顯示圖像為 null 的錯誤,我該如何解決?

你的 Controller 應該是這樣的。

public function newStoreBlog(Request $request)
    {

        $this->validate($request,[
            'title' => ['required', 'string', 'max:255'],
            'category' => ['required'],
            'image' => ['required'],
            'description' => ['required','string'],
        ]);

        $fileName = null;
        if($request->hasFile('image')){
            $photoFile = $request->file('image');
            $fileName = $photoFile->getClientOriginalName();
            Storage::putFileAs('public/photos',$photoFile, $fileName);
        }
 
        Article::create([
            'user_id' => Auth::user()->id,
            'category_id' => $request->input('category_id'),
            'title' => $request->title,
            'image' => $fileName,
            'description' => $request->description,
        ]);


暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM