在Django中如何从POST表单获取二进制字段数据

时间:2018-06-01 14:25:30

标签: django python-3.x django-models django-rest-framework

我有一个HTML文件,我使用一个图片上传按钮。现在,此图像作为Blob存储在MySql数据库中。我需要通过post方法以某种方式在Django中获取或读取此图像数据。有人可以帮忙怎么做?

图标的定义如下:

icon = models.BinaryField(null=True)

我的Html:

 <input type="file" id="toolicon" accept="image/*" data-type='image'  >
<button id="OpenImgUpload" style="margin-left: 100px">Image Upload</button>

在JQuery中:

$('#OpenImgUpload').click(function(){ $('#toolicon').trigger('click'); });

图像:

Html look

现在我想将此文件作为二进制字段数据。直到现在我已经使用过:

tool_icon = request.POST('toolicon', '')
tool_icon = request.POST.get('toolicon', '')
tool_icon = base64.b64encode('toolicon', '')

没有任何作品......任何人都可以帮助我。

1 个答案:

答案 0 :(得分:1)

上传的文件包含在request.FILES中,其键与输入元素上的name属性相对应。

因此,您应该在输入中添加name属性:

<input type="file" name="toolicon" ...

然后使用request.FILES

访问数据
tool_icon = request.FILES.get('toolicon', '')

请求的内容类型必须为multipart/form-data,您应在表单中设置:

<form enctype="multipart/form-data" ...