413 发送图像数据时请求实体太大

pep*_*per 3 html apache perl nginx

我网站的一部分使用以下方法从 HTML5 画布获取图像

 .toDataURL()
Run Code Online (Sandbox Code Playgroud)

然后使用 AJAX 将原始数据作为 POST 消息的一部分发送到我的服务器。在服务器端,我有一个 cgi 脚本,需要长数据字符串。我一直收到此错误:

 413 (Request Entity Too Large) 
Run Code Online (Sandbox Code Playgroud)

我正在使用 perl CGI 库,但我没有

 $CGI::POST_MAX 
Run Code Online (Sandbox Code Playgroud)

设置,或

  $CGI::DISABLE_UPLOADS
Run Code Online (Sandbox Code Playgroud)

放。这是由于服务器中设置的限制吗?我使用apache和nginx作为代理服务器。我担心我无法解决这个问题,因为我正在编写要安装在 bluehost 服务器上的网站。基本上我有两个问题: 1.有没有办法使用 html5 canvas 方法来创建到服务器的文件上传类型的 post 请求?2. 有没有办法解决这个 413 错误,并且不涉及弄乱 Apache/Nginx(或其他一些服务器)配置?

ajt*_*rds 5

如果您\xe2\x80\x99在尝试上传时收到 413 Request Entity Too Large 错误,则需要增加nginx.conf或任何其他配置文件中的大小限制。client_max_body_size xxM在服务器部分中添加,其中xx是您想要允许的大小(以兆字节为单位)。

\n\n
http {\n    include       mime.types;\n    default_type  application/octet-stream;\n    sendfile        on;\n    keepalive_timeout  65;\n\n    server {\n        client_max_body_size 20M;\n        listen       80;\n        server_name  localhost;\n\n        # Main location\n        location / {\n            proxy_pass         http://127.0.0.1:8000/;\n        }\n    }\n}\n
Run Code Online (Sandbox Code Playgroud)\n