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

      使用Django框架实现文件上传功能

        upload.html 

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <meta name="viewport" content="width=device-width, initial-scale=1">
        <title>uploadFile</title>
    
    </head>
    <body>
    
    <form method="post" action="/upload/" enctype="multipart/form-data">
            <input id="user" type="text" name="user" />
            <input id='file' type="file" name="file" />
            <input type="submit" />
        </form>
    
    </body>
    </html>

      模板文件中,创建一个form表单,在有文件上传的form表单中,method属性必须为post,而且必须指定它的encrytype=‘multipart/form-data’,表示不对字符进行编码,type类型为'file'

      views

    def uploadFile(request):
        if request.method == 'POST':
            my_file = request.FILES.get('file')
            with open(os.path.join('uploadFileDemo', my_file.name), 'wb') as f:
                for line in my_file.chunks():
                    f.write(line)
            return HttpResponse('上传成功')
        return render(request,'upload.html')

       获取文件使用request.FILES.get()方法,因为上传的文件是保存在FILES这个字典中的,关于上传文件的几个方法和属性如下

    myFile.read():从文件中读取整个上传的数据,这个方法只适合小文件
    myFile.chunks():按块返回文件,通过在for循环中进行迭代,可以将大文件按块写入到服务器中
    myFile.multiple_chunks():这个方法根据myFile的大小,返回True或者False,当myFile文件大于2.5M(默认为2.5M,可以调整)时,该方法返回True,否则返回False,因此可以根据该方法来选择选用read方法读取还是采用chunks方法
    myFile.name():这是一个属性,该属性得到上传的文件名,包括后缀
    myFile.size:这是一个属性,该属性得到上传文件的大小
    #myFile.multiple_chunks()使用
     if myFile.multiple_chunks() == False:
          # 使用myFile.read()
     else:
          # 使用myFile.chunks()

       uploadfileDemo

    https://github.com/Leila2Utopia/uploadFileDemo
  • 相关阅读:
    扩展运算符(Spread operator)
    增强的对象字面量,解构赋值
    ES6 模板字符串(template string)
    let和const
    svg实现放大效果
    svg制作风车旋转
    jquery实现某宝放大点击切换
    jQuery之文档处理
    jQuery之属性操作
    jQuery css操作
  • 原文地址:https://www.cnblogs.com/iamluoli/p/10131944.html
Copyright © 2011-2022 走看看