0

尝试将图像上传到 laravel 存储时出现错误。

SplFileInfo::getSize(): C:\xampp\tmp\php3624.tmp 的统计失败

但我什至没有使用 SplFileInfo 函数。这是我的代码。

public function store(Request $request)
    {
        $this->validate($request, [
            'title' => 'required|max:191',
            'sub_title' => 'required|max:191',
            'description' => 'required',
            'active' => 'required',
            'img' => 'image|mimes:jpg,png,svg,gif,jpeg|max:2048'
        ]);

        $services = new Services;
        if($request->hasFile('img')){
            $imageName = time().'_NEWS.'.$request->file('img')->getClientOriginalExtension();
            // dd($request->file('img')->getMaxFilesize());
            $services->news_image = $imageName;
            $request->file('img')->move(public_path('storage/services/'), $imageName);


        }
        $services->title = $request->input('title');
        $services->sub_title = $request->input('sub_title');
        $services->description = $request->input('description');
        $services->active = $request->input('ative');
        $services->save();

        return redirect('/admin/services')->with('success', 'Succesvol een behandeling aangemaakt');
    }

我希望有人可以在这里帮助我。我已经知道它是一个 Symfony 错误,但我找不到任何问题的答案。我已经改变了我的

post_max_size=40M 和 upload_max_filesize=40M

在 PHP.ini 中,所以这不会是问题。

4

2 回答 2

3

发生错误是因为您已 move()d 文件,然后 getSize()d 对象。尝试设置一个变量并分配大小,然后移动文件。

{
     ...
     $size=$request->file('img')->getSize();
     $request->file('img')->move(public_path('storage/services/'), $imageName);
}
于 2020-04-28T15:22:26.807 回答
0

这帮助我解决了这个问题。也许不是最好的解决方案,但它对我有用。

    public function store(Request $request)
{
    $this->validate($request, [
        'title' => 'required|max:191',
        'sub_title' => 'required|max:191',
        'description' => 'required',
        'active' => 'required',
        'img' => 'image|mimes:jpg,png,svg,gif,jpeg|max:2048'
    ]);

    $services = new Services;
    if($request->hasFile('img')){
        $imageName = time().'_NEWS.'.$request->file('img')->getClientOriginalExtension();
        // dd($request->file('img')->getMaxFilesize());
        $services->news_image = $imageName;
        $request->file('img')->move(public_path('storage/services/'), $imageName);
        $size=$request->file('img')->getSize();   


    }
    $services->title = $request->input('title');
    $services->sub_title = $request->input('sub_title');
    $services->description = $request->input('description');
    $services->active = $request->input('ative');
    $services->save();

    return redirect('/admin/services')->with('success', 'Succesvol een behandeling aangemaakt')->with($size);
}
于 2019-09-24T13:49:23.157 回答