iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > PHP编程 >hyperf3.0 上传文件报错 , 文件头大
  • 144
分享到

hyperf3.0 上传文件报错 , 文件头大

phpjava服务器 2023-09-04 06:09:11 144人浏览 泡泡鱼
摘要

报错信息:  WARNING Port_onRead_Http() (ERRNO 7102): Request Entity Too Large: header-length (351) + content-length (2986258)

报错信息:

 WARNING Port_onRead_Http() (ERRNO 7102): Request Entity Too Large: header-length (351) + content-length (2986258) is greater than the package_max_length(2097152) from session#3 on 0.0.0.0:9501

这里我查找了点资料 ,

这里主要看的swoole Swoole4 文档

GET/POST 请求的最大尺寸

GET 请求最大 8192

GET 请求只有一个 Http 头,Swoole 底层使用固定大小的内存缓存区 8K,并且不可修改。如果请求不是正确的 Http 请求,将会出现错误。底层会抛出以下错误:

WARN swReactorThread_onReceive_http_request: http header is too long.Copy to clipboardErrorCopied

POST 文件上传

最大尺寸受到 package_max_length 配置项限制,默认为 2M,可以调用 Server->set 传入新的值修改尺寸。Swoole 底层是全内存的,因此如果设置过大可能会导致大量并发请求将服务器资源耗尽。

计算方法:最大内存占用 = 最大并发请求数 * package_max_length

解决方案很简单 , 就是在config / autoload / server.PHP中的setting设置 , 添加一行代码, 并增大一点缓冲区大小即可

Constant::OPTION_PACKAGE_MAX_LENGTH  => 20 * 1024 * 1024,

这里如果你像我一样手写的工厂模式上传 , 可以使用OSS , 千万别用华为云的就对了 , 这里如果服务器和OSS在同一个机房 , 可以使用内网地址达到加速的作用

下面是我的阿里云上传OSS代码 , 没有存储到本地进行中转 , 2M文件大概是0.2s左右

getExtension();        if (!in_array(strtolower($ext), $allowed_extensions)) {            throw new ApiException(                message: config('statuscode.err_msg.not_supported_format_file'),                code: config('statuscode.err_code.not_supported_format_file'),                remind: 1,            );        }        //检测文件大小        if ($file->getSize() > $maxSize * 1024 * 1024) {            throw new ApiException(                message: config('statuscode.err_msg.file_too_large'),                code: config('statuscode.err_code.file_too_large'),                remind: 1,            );        }        $accessKeyId = config('thirtparty.aliyun.accessKeyID');        $accessKeySecret = config('thirtparty.aliyun.accessKeySecret');        $endpoint = config('oss.aliyun.endpoint');        $bucket = config('oss.aliyun.bucket');        $newFile = 'ddgcjx' . "/" . date('Ym') . "/" . uniqid() . rand(10, 99) . "." . $file->getExtension();        $filePath = $file->getPathname();;        $ossClient = new OssClient($accessKeyId, $accessKeySecret, $endpoint);        $style = "image/watermark,g_nw,t_90,size_100,type_ZmFuZ3poZW5naGVpdGk,x_10,y_10,P_10,image_bG9nby5wbmc_eC1vc3MtcHJvY2Vzcz1pbWFnZS9yZXNpemUsUF8xNQ==";        // 上传时可以设置相关的headers,例如设置访问权限为private、自定义元信息等。        $options = array(            OssClient::OSS_HEADERS => array(                'x-oss-object-acl' => 'public-read',            ),            OssClient::OSS_PROCESS => $style,        );        $resp = $ossClient->uploadFile($bucket, $newFile, $filePath, $options);        if ($resp['info']['http_code'] == 200) {     //$resp ['httpstatusCode']状态码 200就是成功            $res = $resp['info']['url'];            // OSS 访问域名            $url = config('oss.aliyun.url');            if (!$url) {                return $res;            } else {                return str_ireplace($bucket . '.' . $endpoint, $url, $res);            }        } else {            throw new apiException(                message: config('statuscode.err_msg.fail'),                code: config('statuscode.err_code.fail'),                remind: 1,            );        }    }}

来源地址:https://blog.csdn.net/s1095622320/article/details/128411404

--结束END--

本文标题: hyperf3.0 上传文件报错 , 文件头大

本文链接: https://www.lsjlt.com/news/393075.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • hyperf3.0 上传文件报错 , 文件头大
    报错信息:  WARNING Port_onRead_http() (ERRNO 7102): Request Entity Too Large: header-length (351) + content-length (2986258)...
    99+
    2023-09-04
    php java 服务器
  • django+python大文件上传
    大文件上传服务一、前端[webuploader](http://fex.baidu.com/webuploader/ ''webuploader'')二、后端django 2.0.0这里只贴出核心的代码:前端的: <!DOCTYPE ...
    99+
    2023-01-31
    大文件 上传 django
  • Asp.Net上传文件并配置可上传大文件的方法
    ASP.NET 包含两个控件可以使用户向网页服务器上传文件。一旦服务器接受了上传的文件数据,那么应用程序就可以进行保存,进行检查或者忽略它。 HtmlInputFile -...
    99+
    2024-04-02
  • Springboot怎么上传文件或头像
    本篇内容主要讲解“Springboot怎么上传文件或头像”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Springboot怎么上传文件或头像”吧!1. 在配置文件中指定外部环境, 注入到代码中头...
    99+
    2023-07-06
  • gitee如何上传大文件
    Gitee是一个著名的开源协作平台,它不仅提供了代码托管服务,还支持文件上传和分享等功能。但是,在上传大文件的时候,很多人却遇到了困难。那么,Gitee如何上传大文件呢?本文将为您详细介绍。一、什么是GiteeGitee是一个功能强大的开源...
    99+
    2023-10-22
  • Springboot 上传文件或头像(MultipartFile、transferTo)
    目录1. 在配置文件中指定外部环境, 注入到代码中2. 设置上传文件的限制配置3. 设置外部路径映射到url4. 用户实体类中 加入 image 字段5. Controller层编写...
    99+
    2023-05-16
    Springboot 上传文件 Springboot 上传头像
  • vue文件上传报错如何解决
    本篇内容主要讲解“vue文件上传报错如何解决”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“vue文件上传报错如何解决”吧!vue文件上传报错的解决办法:1、通过“vue init webpack...
    99+
    2023-07-05
  • 如何上传大文件到vps
    要上传大文件到VPS,您可以使用以下方法:1. 使用FTP客户端:使用FTP客户端(如FileZilla、WinSCP等),连接到您...
    99+
    2023-09-14
    vps
  • MediaWiki上传文件大小设置
    MediaWiki默认最大上传文件大小为2M,碰到文件较大需要修改这个限制,需要改为8M。 使用docker运行的MediaWiki,默认是没有php.ini这个文件的。默认的php配置文件路径为:/usr/local/etc/p...
    99+
    2023-01-31
    文件大小 上传 MediaWiki
  • RestTemplate文件上传下载与大文件流式下载
    目录一、文件上传二、文件下载三、大文件下载本文是精讲RestTemplate第6篇,前篇的blog访问地址如下: RestTemplate在Spring或非Spring环境下使用精讲...
    99+
    2024-04-02
  • Cherrypy文件上传非ASCII文件
    Cherrypy 版本: 18.0.1 由于某些特殊原因(可能是与标准兼容的问题),Cherrypy对上传文件的原文件名使用 ISO-8859-1 编码方式解码,导致非 ASCII 的文件名显示为乱码。 解决的方式也很简单,只需要对文件名...
    99+
    2023-01-30
    文件上传 文件 Cherrypy
  • SpringMVC 单文件上传与多文件上传实例
    一、简述一个javaWeb项目中,文件上传功能几乎是必不可少的,本人在项目开发中也时常会遇到,以前也没怎么去理它,今天有空学习了一下这方面的知识,于是便将本人学到的SpringMVC中单文件与多文件上传这部分知识做下笔记。二、单文件上传1、...
    99+
    2023-05-31
    springmvc 文件上传 多文件上传
  • Spring MVC文件上传大小和类型限制以及超大文件上传bug问题
     在上一篇文章中,主要介绍了Spirng MVC环境下的正常情况下文件上传功能实现。在实际开发的时候,还会涉及到上传文件大小和类型的限制,接下来就会对Spirng MVC环境下文件上传大小和类型的限制进行介绍,还会讲解到文件上传大...
    99+
    2023-05-30
    spring mvc 文件
  • ThinkPHP6 文件上传
    内置文件上传使用\think\facade\Filesystem类封装方法 目录 简单上传 public存储文件  文件验证 命名规则 使用sha1 使用MD5 使用date 指定文件名称 自定义命名规则 更多上传设置 总结   ...
    99+
    2023-09-14
    php thinkPHP 文件上传
  • PHP---文件上传
    目录 一、文件上传的概念 二、文件上传的步骤 (1)表单的制作 三、$_FILES详解 (1)name (2)tmp_name (3)type (4)error (5)size  四、移动临时文件到目标位置  五、多文件上传 (1)同名表单...
    99+
    2023-09-03
    服务器 运维 php
  • golang大文件上传怎么实现
    在Go语言中,可以使用`net/http`包来实现大文件上传。下面是一个简单的示例: package main import ( ...
    99+
    2023-10-26
    golang
  • Discuz怎么支持大文件上传
    这篇文章给大家分享的是有关Discuz怎么支持大文件上传的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。5步轻松让 Discuz 支持500M大文件上传演示版本是 discuz-x3.4在使该插件前,请先确认Dis...
    99+
    2023-06-09
  • Spring boot实现文件上传实例(多文件上传)
    文件上传主要分以下几个步骤:(1)新建maven java project;(2)在pom.xml加入相应依赖;(3)新建一个表单页面(这里使用thymleaf);(4)编写controller;(5)测试;(6)对上传的文件做一些限制;(...
    99+
    2023-05-31
    spring boot 文件上传
  • AJAX实现文件上传功能报错Currentrequestisnotamultipartrequest详解
    想做一个文件上传,spring boot配合Ajax来进行。却报错:Current request is not a multipart request 这是错误截图: 当时发生这...
    99+
    2024-04-02
  • el-upload多选文件上传报错如何解决
    这篇“el-upload多选文件上传报错如何解决”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“el-upload多选文件上传...
    99+
    2023-07-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作