首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用base64向nginx+uwsig+django服务器发送大图

问使用base64向nginx+uwsig+django服务器发送大图
EN

Stack Overflow用户
提问于 2019-01-10 19:38:18
回答 1查看 569关注 0票数 0

我正在使用base64将图像上传到Django服务器。当图像尺寸大于2M时,服务器无法获取图像。

我设置了uwsgi和nginx配置,并将上传大小设置为75M,但它不起作用。

客户端:

代码语言:javascript
复制
image1 = base64.b64encode(open(file_path, 'rb').read())
r = requests.post(url, data={"image": image1})

服务器:

代码语言:javascript
复制
result = request.POST.get("image")
代码语言:javascript
复制
Nginx:

```bash

服务器{

将为您的站点提供服务的端口

听*;

它将服务的域名

#server_name .example.com;#替换计算机的IP地址或完全限定的域名

server_name *;

utf-8字符集

最大上传大小

client_max_body_size 75M;

}

代码语言:javascript
复制
uwsgi:

```bash

ocr.ini文件

与Django相关的设置

基目录(完整路径)

chdir= /root/ubuntu

Django的wsgi文件

module= mysite.wsgi

virtualenv (完整路径)

home= /root/ubuntu

与流程相关的设置

主控

master= true

最大工作进程数

processes= 32

最大请求数= 10000

daemonize= /tmp/a.log

pidfile= /tmp/a.pid

#reload-on-as = 126

#reload-on-rss = 126

#enable-threads= true

套接字(为安全起见,使用完整路径

socket= /root/ubuntu/mysite.sock

..。具有适当权限-可能需要

chmod-socket= 666

退出时清除环境

vacuum= true

limit-post= 20000000

harakiri=30

后期缓冲=20000000

py-autoreload =1

代码语言:javascript
复制

错误:

​

​

EN

回答 1

Stack Overflow用户

发布于 2019-01-10 19:48:57

您可能正在达到服务器库中某处设置的硬限制。如果你正在尝试上传这么大的文件,那么使用POST在data参数中传递所有内容是一个糟糕的主意(而且非常慢)。

您应该使用files关键字参数来使用requests发送,并使用FILES属性来使用Django接收。

客户端:

代码语言:javascript
复制
r = requests.post(files={'image': open(file_path,'rb')})

服务器:

代码语言:javascript
复制
img = request.FILES.get("xxx") # <-- file name here

with open('path/to/destination', 'wb') as dest:
    for chunk in img.chunks():
        dest.write(chunk)

查看Django文档的File Uploads页面。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54127883

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档