【问题标题】:Easiest way to display uploaded (image)file?显示上传(图像)文件的最简单方法?
【发布时间】:2012-09-26 21:37:21
【问题描述】:

我正在尝试第一次尝试 django 文件上传, 而我现在需要的只是一种向上传的用户显示上传图像(png/jpg)的方法。

无需保存在任何地方。

我的意见.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”,而无需努力保存文件?

【问题讨论】:

    标签: django django-forms filefield django-file-upload


    【解决方案1】:

    您可以像这样从图像数据中创建一个数据 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 }}">
    

    【讨论】:

    • 你不知道这对我的 django 项目有多大帮助!非常感谢你!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-06-29
    • 1970-01-01
    • 1970-01-01
    • 2011-02-25
    • 2011-05-20
    • 1970-01-01
    • 2011-11-10
    相关资源
    最近更新 更多