zoukankan      html  css  js  c++  java
  • web应用 上传文件

    用自定义form表单提交

    html文件

    index.html
    
    <form action="/update_file/" enctype="multipart/form-data" method="post">  #enctype="multipart/form-data" 是编码类型,指表单数据有多部分构成,既有文本数据,又有文件等二进制数据
        {% csrf_token %}
        <input type="file" name="pic">
        <input type="submit" value="上传">
    </form>

    视图函数

    def update_file(request):
      pic=request.FILES['pic'] #或request.FILES.get('pic') 拿到文件pic对象
      f = open(pic.name,'wb') #pic.name 为文件名(可自行拼接指定路径+文件名) pic.size 为文件大小
      for i in pic.chunks(): #chunks()是一个生成器对象,遍历可得到文件内容,节约内存,分块读取写入
        f.write(i)
      f.close()
      return HttpResponse('ok')

    用django自带form组件提交

    先写一个Form类

    views.py
    class RegForm(forms.Form):
        pic = forms.FileField()      # 会给name前边生成一个lable标签

    再写视图函数

    views.py
    def
    upload(request): form_obj = RegForm() # 实例化一个对象 if request.method == "POST": # 实例化form对象的时候,把post提交过来的数据直接传进去 form_obj = RegForm(request.POST) # 调用form_obj校验数据的方法 if form_obj.is_valid(): return HttpResponse("成功") return render(request, "upload.html", locals())

    在html中生成标签

    <form action="/update_file/" enctype="multipart/form-data" method="post">
        {% csrf_token %} 
        {{ form_obj.pic }} #
        <input type="submit" value="上传">
    </form>
  • 相关阅读:
    抽签问题及优化
    P1020
    p1852ants
    1,三角形
    TG3
    如何看懂一篇题解
    Unsupported major.minor version 51.0 错误解决方案
    weblogic初学笔记2-在Linux上部署项目
    一块移动硬盘怎样兼容Mac和Windows系统,并且可以在time machine上使用
    org.hibernate.HibernateException: connnection proxy not usable after transaction completion
  • 原文地址:https://www.cnblogs.com/zc3614/p/11789857.html
Copyright © 2011-2022 走看看