簡體   English   中英

CRUD(更新)上載文件出現問題“對成員函數getClientOriginalName()的調用為null”

[英]Problem with CRUD(update) Upload File “call to a member function getClientOriginalName() on null”

我想在管理數據中使用Laravel存儲文件系統更新映像。 但是,當我嘗試上傳圖像時出現錯誤

Iam使用Laravel 5.7

這是我的創造,創造就是成功

public function store(Request $request)
    {

        //
        $product = new \App\Product;
        $product->product_name = $request->get('product_name');
        $product->desc = $request->get('desc');
        $product->stock = $request->get('stock');
        $product->price = $request->get('price');
        $product->category = $request->get('category');



        $img = $request->file('img');

        $new_name = rand() . '.' . $img->getClientOriginalExtension();
        $img->move(public_path('img'), $new_name);
        $product->img = $new_name;
        $product->save();

        return redirect('admin')->with('success', 'Data Produk telah ditambahkan'); 
    }

這是我的更新

public function update(Request $request, $id)
    {
        //
        $product = $request->all();
        $product= \App\Product::find($id);
        $new_name = $request->file('img')->getClientOriginalName();
        $destinationPath = 'img/';
        $proses = $request->file('img')->move($destinationPath, $new_name);

        if($request->hasFile('img'))
        {
            $product = array(
                    'product_name' => $product['product_name'],
                    'desc'=> $product['desc'],
                    'stock'=> $product['stock'],
                    'price'=> $product['price'],
                    'category'=> $product['category'],
                    'img' => $new_name,
                );

            $product->save() ;
            return redirect('admin')->with('success', 'Data Produk telah ditambahkan'); 
        }


    }

在null上調用成員函數getClientOriginalName()

我認為更新時沒有附加圖像文件。 您可以將我的代碼用作參考。 不要忘記在更新字段中檢查輸入字段。 首先檢查是否有圖像文件。 然后,去獲取姓名,分機號和其他人員。

public function update($id, Request $request)
{
    $input = $request->all();
    $product= \App\Product::find($id);

    if (empty($product)) {
        Flash::error('product not found');

        return redirect(route('products.index'));
    }
    if ($request->hasFile('product_img')) {
        $fileNameWithExt = $request->file('product_img')->getClientOriginalName();
        $filename = pathinfo($fileNameWithExt, PATHINFO_FILENAME);
        $extension = $request->file('product_img')->getClientOriginalExtension();
        $new_product_img = $filename . '_' . time() . '.' . $extension;
        $path = $request->file('product_img')->move('images/products', $new_product_img);
        Storage::delete('products/'.$product->product_img);
        $input['product_img']= $new_product_img;
    }
    $product= $this->productRepository->update($input, $id);

    Flash::success('product updated successfully.');

    return redirect(route('products.index'));
}

暫無
暫無

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

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