zoukankan      html  css  js  c++  java
  • python---django中文件上传

    服务端:

    def upload(req):
        if req.method == "GET":
            return render(req, 'upload.html')
        else:
            print(req.POST.get("user"))
            img = req.FILES.get('img')
            print(type(img))
            #(<class 'django.core.files.uploadedfile.InMemoryUploadedFile'>, 获取的是一个对象类型
            # print(img.name)
            # print(img.size)
    
            with open(img.name,"wb") as fp:
                for line in img.chunks():   #一块一块获取内容
                    fp.write(line)
            return HttpResponse("....")

    前端:

    <form action="/upload.html" method="post" enctype="multipart/form-data">
        {% csrf_token %}
        <input type="text" name="user">
        <div style="position: relative">
            <p>NB的上传</p>
            <input type="file" name="img" style="opacity: 0.2;position: absolute;top:0;left:0;">
        </div>
        <input type="submit" value="提交"/>
    </form>

    服务端使用form组件验证:

    from django import forms
    from django.forms import fields
    
    class UploadForm(forms.Form):
        user = fields.CharField()
        img = fields.FileField()
    
    def upload(req):
        if req.method == "GET":
            return render(req, 'upload.html')
        else:
            obj = UploadForm(req.POST,req.FILES)
            if obj.is_valid():
                user = obj.cleaned_data['user']
                img = obj.cleaned_data['img']
                with open(img.name,"wb") as fp:
                    for line in img.chunks():   #一块一块获取内容
                        fp.write(line)
                return HttpResponse("....")
            return HttpResponse("....")
  • 相关阅读:
    申诉电信ADSL宽带限速
    回帖整理
    继续无题
    抛砖引玉,征集体会
    关于程序组织和组织技巧的学习
    周鸿祎行
    无题
    用此书为例讨论下软件思想的学习
    笔记
    方法论究竟为社区提供了什么
  • 原文地址:https://www.cnblogs.com/ssyfj/p/8687186.html
Copyright © 2011-2022 走看看