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('...')
  • 相关阅读:
    Vue项目中跨域问题解决
    子网掩码
    C++的const类成员函数
    在python3中使用urllib.request编写简单的网络爬虫
    Linux 重定向输出到多个文件中
    背包问题
    hdu-1272 小希的迷宫
    SQLAlchemy 几种查询方式总结
    pycharm快捷键、常用设置、配置管理
    python3判断字典、列表、元组为空以及字典是否存在某个key的方法
  • 原文地址:https://www.cnblogs.com/dangrui0725/p/9675443.html
Copyright © 2011-2022 走看看