• Django(十七)文件上传


    http://www.cnblogs.com/wupeiqi/articles/5703697.html


        - 文件上传
            - 普通上传
            - 自定义页面上传按钮
            - 基于Form做上传
            - Ajax上传文件?????

    一,上传文件

    from django.shortcuts import render,redirect, HttpResponse
    
    # Create your views here.
    
    def update(request):
        if request.method == 'GET':
            return render(request, 'update.html')
        else:
            username = request.POST.get('username')
            img = request.FILES.get('img')
            print(img)
            print(username)
            file_name = img.name
            file_size = img.size
            print(file_name, file_size)
            f = open(img.name, 'wb')
            for line in img.chunks():
                f.write(line)
            f.close()
    
    
            return HttpResponse("ok")
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
    </head>
    <body>
    
    <form action="/update/" method="post" enctype="multipart/form-data">
        {% csrf_token %}
    
        <input type="text" name="username">
        <div style="position: relative">
            <a href="">上传</a>
           <input type="file" name="img" style="opacity:0; position: absolute;left: 0;top: 0;">
        </div>
    
        <input type="submit" value="提交" />
    </form>
    
    </body>
    </html>

    基于Form上传

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
    </head>
    <body>
    
    <form action="/update/" method="post" enctype="multipart/form-data">
        {% csrf_token %}
    
        {{ obj.user }}
        {{ obj.img }}
    
        <input type="submit" value="提交" />
    </form>
    
    </body>
    </html>
    from django.shortcuts import render,redirect, HttpResponse
    
    # Create your views here.
    from django import  forms
    from django.forms import fields
    class Upload(forms.Form):
        user = fields.CharField()
        img = fields.FileField()
    
    def update(request):
        if request.method == 'GET':
            obj = Upload()
            return render(request, 'update.html',{'obj':obj})
        else:
            obj = Upload(request.POST, request.FILES)
            if obj.is_valid():
                username = obj.cleaned_data['user']
                img = obj.cleaned_data['img']
                print(img)
                print(username)
                file_name = img.name
                file_size = img.size
                print(file_name, file_size)
                f = open(img.name, 'wb')
                for line in img.chunks():
                    f.write(line)
                f.close()
    
    
            return HttpResponse("ok")
  • 相关阅读:
    转(一万小时定律的文章): const 与 readonly区别...
    项目中报错邮件方法
    Windows Phone(一) 正式开发之前的准备资料(主要注册开发者账号,手机解锁,激活码,程序部署)
    转(ASP.NET页面缓存)
    部署XAP时,部署工具提示部署无效,求解决!
    jQuery 1
    DOMform
    jQuery 2 一些常用的函数
    jQuery 6 层次选择器
    jQuery 3 对象转换
  • 原文地址:https://www.cnblogs.com/xiangtingshen/p/10686712.html
Copyright © 2020-2023  润新知