【发布时间】:2021-01-06 16:46:07
【问题描述】:
我有一个带有二进制字段的文件模型
class File(models.Model):
id = models.AutoField(primary_key=True)
file = models.BinaryField()
name = models.TextField(null=False, blank=False)
我创建了一个按 id 呈现文件的视图
def media(request, file_id):
file = get_object_or_404(File, id=file_id)
content = file.file
return FileResponse(content, as_attachment=False, filename=file.name)
这是我得到的输出
%PDF-1.4 3 0 obj >>>>] /Contents 4 0 R>> endobj 4 0 obj 流 x�3R��2�35W(�*T0P�R0T(�Y @���@QC= PA�J���1Tp�W�+R@&�ҹ6f� endstream endobj 1 0 obj endobj 5 0 obj /Group /Length 19219 >> stream x ��}K�m�U����F�?��{9���������h�(�U��+�[�z;��A�����HI '4h#z��
当文件类型已知时,我可以手动将content_type 设置为application/pdf、image/png... 但这是BinaryField,我不知道用户上传了什么。无论文件类型如何,如何获得正确的 mimetype?
【问题讨论】: