图片上传失败。在 Laravel 服务器上

Jor*_*man 6 deployment image file crud laravel

图片上传失败。

链接 https://comedoruniversitariouncp.000webhostapp.com/products/create

该项目在本地服务器上运行,当我上传到服务器时出现错误

创建.blade.php

<form action="{{ route('products.store') }}" method="POST" enctype="multipart/form-data">
        @csrf
        <div class="form-group row">
            <label class="col-form-label col-sm-2">Name</label>
            <div class="col-sm-10">
                <input type="text" class="form-control" name="name">
            </div>
        </div>
        <div class="form-group row">
            <label class="col-form-label col-sm-2">Price</label>
            <div class="col-sm-10">
                <input type="number" class="form-control" name="price" step="0.1">
            </div>
        </div>
        <div class="form-group row">
            <label class="col-form-label col-sm-2">Amount</label>
            <div class="col-sm-10">
                <input type="number" class="form-control" name="amount" >
            </div>
        </div>
        <div class="form-group row">
            <label class="col-form-label col-sm-2">Image</label>
            <div class="col-sm-10">
                <input type="file" class="form-control-file" name="image">
            </div>
        </div>
        <button type="submit" class="btn btn-primary">Create</button>
    </form>
Run Code Online (Sandbox Code Playgroud)

产品控制器.php

    public function store(Request $request)
    {
        $request->validate([
            'name' => 'required',
            'price' => 'required',
            'amount' => 'required',
            'image' => 'required|image'
        ]);

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

        $new_name = rand() . '.' . $image->getClientOriginalExtension();
        $image->move(public_path('images'), $new_name);

        Product::create([
            'name' => $request->name,
            'price' => $request->price,
            'amount' => $request->amount,
            'image' => $new_name
        ]);

        return redirect()->route('products.index')->with('message', 'Product created successfully');
    }
Run Code Online (Sandbox Code Playgroud)

Ste*_*hen 6

正如您提到的在本地工作但不在远程工作。我假设该大小upload_max_filesize大于您上传文件的大小,并且本地和远程的大小不一样。


Vin*_*tar 0

你应该尝试这个

尝试添加mimetypes图像验证。

public function store(Request $request)
    {
        $request->validate([
            'name' => 'required',
            'price' => 'required',
            'amount' => 'required',
            'image' => 'required|mimes:jpeg,bmp,png'
        ]);

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

        $new_name = rand() . '.' . $image->getClientOriginalExtension();
        $image->move(public_path('images'), $new_name);

        Product::create([
            'name' => $request->name,
            'price' => $request->price,
            'amount' => $request->amount,
            'image' => $new_name
        ]);

        return redirect()->route('products.index')->with('message', 'Product created successfully');
    }
Run Code Online (Sandbox Code Playgroud)