我正在尝试第一次尝试django文件上传, 我现在需要的是一种向上传的用户显示上传图像(png / jpg)的方法。
无需将其保存在任何地方。
我的views.py: (我正在使用django表格,顺便说一句)
if request.method == 'POST':
form = UploadFileForm(request.POST, request.FILES)
if form.is_valid():
upFile = request.FILES['upFile']
f={"upFile":upFile}
return render_to_response('upload2.html', f)
我可以按预期使用,在模板中显示我的文件的名称和大小 {{upFile.name}}和{{upFile.size}}
有没有办法加载它/在渲染模板中直接显示为'InMemoryUploadedFile',而无需保存文件?
答案 0 :(得分:4)
您可以使用以下方式从图像数据中创建数据URI:
从http://djangosnippets.org/snippets/2516/借来的URI创建:
if form.is_valid():
upFile = request.FILES['upFile']
data = upFile.read()
encoded = b64encode(data)
mime = # the appropriate mimetype here, maybe "image/jpeg"
mime = mime + ";" if mime else ";"
f = {"upFile": "data:%sbase64,%s" % (mime, encoded)}
return render_to_response('upload2.html', f)
然后在模板中使用它:
<img src="{{ upFile }}">