我正在使用base64将图像上传到Django服务器。当图像尺寸大于2M时,服务器无法获取图像。
我设置了uwsgi和nginx配置,并将上传大小设置为75M,但它不起作用。
客户端:
image1 = base64.b64encode(open(file_path, 'rb').read())
r = requests.post(url, data={"image": image1})服务器:
result = request.POST.get("image")Nginx:
```bash服务器{
将为您的站点提供服务的端口
听*;
它将服务的域名
#server_name .example.com;#替换计算机的IP地址或完全限定的域名
server_name *;
utf-8字符集
最大上传大小
client_max_body_size 75M;
}
uwsgi:
```bashocr.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
错误:

发布于 2019-01-10 19:48:57
您可能正在达到服务器库中某处设置的硬限制。如果你正在尝试上传这么大的文件,那么使用POST在data参数中传递所有内容是一个糟糕的主意(而且非常慢)。
您应该使用files关键字参数来使用requests发送,并使用FILES属性来使用Django接收。
客户端:
r = requests.post(files={'image': open(file_path,'rb')})服务器:
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页面。
https://stackoverflow.com/questions/54127883
复制相似问题