Laravel 5 文件上传验证

4
我使用Laravel内置的文件上传来上传视频到我的网站。我已经成功上传了文件,但是当我的朋友试图上传视频时,他遇到了一个错误“validation.uploaded”,我不知道为什么会出现这种情况,我一直在尝试找到错误,但是我找不到。我们都在Firefox和Chrome中尝试过,但只有我的朋友遇到了问题。请帮忙看一下这是我的代码:
保存视频功能
protected function saveVideo(UploadedFile $video)
{
    $fileName = str_random(40);

    $fullFileName = $fileName.'.'.$video->guessClientExtension();

    $video->storeAs('videos', $fileName);

    return $fullFileName;
}

表单数据保存

public function update(Request $request, $id)
{
    //dd($request->all());
    $video = Video::findOrFail($id);
    $this->validate($request, [
        'title' => 'required|unique:lessons,title,'.$video->id,
        'lesson_lists' => 'required',
        'description' => 'required'
    ]);
    $data = $request->only('title', 'description','lesson_lists');
    $data['slug'] = str_slug($request->title);

    if($request->hasFile('image')){
        $data['image'] = $this->saveImage($request->file('image'));
        if($video->image !== '') $this->deletePhoto($video->image);
    }

    if($request->hasFile('video')){
        $data['video'] = $this->saveVideo($request->file('video'));
        if($video->video !== '') $this->deleteVideo($video->video);
    }

    //$data['lesson_id'] = implode($request->get('lesson_lists'));
    $video->update($data);
    Session::flash("flash_notification", [
        "level"=>"success",
        "message"=>"Berhasil menyimpan $video->title"
    ]);

    return redirect()->route('video.index');
}

你尝试使用同一个文件了吗?检查他的视频文件大小并检查服务器的最大上传文件大小(还要检查一下你的表单是否有大小限制)。 - M. Eriksson
@MagnusEriksson 谢谢,显然这只是服务器上传限制配置问题。更改后,它就像魅力一样工作。 - Mahendra Kurniawan
那通常是这样的... :) - M. Eriksson
这对我来说不是那样,问题出在哪里?还有其他解决方案吗? - ehsan asarzadeh
2个回答

8

实际上,如果您尝试下载的文件大小超过“upload_max_filesize”,Laravel会显示此验证错误,因此您必须打开php.ini文件并设置选项如下:

post_max_size = 500M

upload_max_filesize = 500M

注意:如果您使用wamp或xamp,请不要忘记重新启动它,否则重新运行命令:

php artisan serve


1
Laravel响应< strong> 422无法处理的实体,其响应正文包含< code>validation.uploaded ,因为超过了上传大小限制。 尝试为以下可能的参数设置适当的值(例如10M): < p> / etc / php.ini (PHP):

  • upload_max_filesize 10M
  • post_max_size 10M

.htaccess (Apache):

  • php_value upload_max_filesize 10M
  • php_value post_max_size 10M

然后重新启动Apache sudo systemctl restart httpd.service (Cent OS 7)


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接