2

我正在尝试第一次尝试 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”,而无需努力保存文件?

4

1 回答 1

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 }}">
于 2012-10-05T17:57:08.400 回答