• 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('...')
  • 相关阅读:
    py二级习题
    js 闪烁的文字
    用windows 画图 裁剪照片
    JS 练习
    弧度制与角度制
    Knockout.Js官网学习(event绑定、submit绑定)
    js中进行金额计算 parseFloat 会产生精度问题,toFixed(2) 方法修正
    JQuery通过类选择器捕获click事件获取bai当前点击对象的id, javascript中onclick(this)用法介绍
    jQuery检查元素是否含有指定的class类,使用.hasClass()方法
    ajax的dataType有哪些类型?
  • 原文地址:https://www.cnblogs.com/dangrui0725/p/9675443.html
Copyright © 2020-2023  润新知