zoukankan      html  css  js  c++  java
  • Django 文件上传

    1、正常方式

    # 前端
    <form action='/upload.html' method='post' enctype='multipart/form-data'>
    {% csrf_token %}
    <input type='text' name='user'>
    <input type='file' name='img'>
    <input type='submit' value='提交'>
    </form>


    # 修改file的样式 用其它组件放在他上面,并将file透明度设置为0
    <div style='position: relative'>  # 将div中的内容设置为可绝对定位
    <img src='xxx'>
    <input type='file' name='img' style='opacity:0; position:sbsolute; top:0; left:0;'>
    # 通过样式将img与file再设置为大小相同即可
    </div>
    # views.py

    def upload(request):
      if request.method == 'GET':
        return render(request, 'upload.html')
      elif request.method == 'POST':
        user = request.POST.get('user')
        img = request.FILES.get('img')  # img是一个对象,里面封装了文件名、大小、内容。。。
        print(img.name)
        pinrt(img.size)
        f = open(img.name, 'wb')
        for line in img.chunks():
          f.write(line)
        f.close()
        return HttpResponse('...')

     2、使用Django Form组件

    # 前端
    <form action='/upload.html' method='post' enctype='multipart/form-data'>
    {% csrf_token %}
    <input type='text' name='user'>
    <input type='file' name='img'>
    <input type='submit' value='提交'>
    </form>
    
    
    # 修改file的样式 用其它组件放在他上面,并将file透明度设置为0
    <div style='position: relative'>  # 将div中的内容设置为可绝对定位
    <img src='xxx'>
    <input type='file' name='img' style='opacity:0; position:sbsolute; top:0; left:0;'>
    # 通过样式将img与file再设置为大小相同即可
    </div>
    # views.py
    from django import forms
    from django.forms import fields

    class UploadForm(forms.Form):
      user = fields.CharField()
      img = fields.FileField()
    def upload(request):   if request.method == 'GET':     return render(request, 'upload.html')   elif request.method == 'POST':
        obj = UploadForm(request.POST,request.FILES)
       if obj.is_valid():
          user = obj.cleaned_data['user']
          img = obj.cleaned_data['img']
        user
    = request.POST.get('user')     img = request.FILES.get('img')  # img是一个对象,里面封装了文件名、大小、内容。。。     print(img.name)     pinrt(img.size)     f = open(img.name, 'wb')     for line in img.chunks():       f.write(line)     f.close()     return HttpResponse('...')
  • 相关阅读:
    如何用php启动exe程序,并在进程中查看?
    如何用原生js或jquery设置select的值
    php5 升级 php7 版本遇到的问题处理方法总结
    phpexcel 读取日期的问题?
    PHPExcel_Reader_Exception: is not recognised as an OLE file in Classes问题解决方法
    QT Unexpected CDB exit 问题的解决办法
    html调用摄像头的方法汇总
    win7 32位 安装opencv-python后,运行时提示 "from .cv2 import *: DLL load failed: 找不到指定的模块" 的解决办法
    centos7 crontab 定时执行python任务不执行的原因及解决办法
    centos 7 生成文件名乱码的问题如何解决?
  • 原文地址:https://www.cnblogs.com/dangrui0725/p/9675443.html
Copyright © 2011-2022 走看看