zoukankan      html  css  js  c++  java
  • python中的文件上传

    Django实现


    form表单实现文件的上传

    /form_upload/urls.py

    from django.conf.urls import url
    from django.contrib import admin
    from app01 import views
    
    urlpatterns = [
        url(r'^admin/', admin.site.urls),
        url(r'^upload/', views.upload),
    ]
    

    /app01/views.py

    from django.shortcuts import render
    import os
    from django.conf import settings
    import datetime
    # Create your views here.
    
    
    def upload(request):
        # 1. 第一次GET请求来, 应该给用户返回一个页面
        if request.method == 'POST':
            # print(request.FILES)
            file_obj = request.FILES.get('file_name')  # 文件对象
            # print(type(file_obj))  # <class 'django.core.files.uploadedfile.InMemoryUploadedFile'>
            # print(type(file_obj.name))  # <class 'str'>
    
            file_name = file_obj.name
            if os.path.exists(os.path.join(settings.BASE_DIR, file_name)):
                # 如果存在重名的文件
                name, suffix = file_name.split('.')
                datatime_obj = datetime.datetime.now()
                year, month, day, hour, minute,second = datatime_obj.year, datatime_obj.month, datatime_obj.day,datatime_obj.hour, datatime_obj.minute, datatime_obj.second
                name += '_%s-%s-%s %s:%s:%s'%(year, month, day, hour, minute, second)
                file_name = '%s.%s'%(name, suffix)
    
    
            # 从上传文件对象里 一点一点读取数据, 写到本地
            # with open(file_obj.name, 'wb') as f:
            #     for line in file_obj:
            #         f.write(line)
    
            # 官方推荐写法, file_obj.chunks() 可以指定一次读多少数据
            with open(file_name, 'wb') as f:
                for chunk in file_obj.chunks(2200):
                    f.write(chunk)
    
        return render(request, 'upload.html')
    

    代码下载

    gitee仓库

    代码下载

  • 相关阅读:
    CentOS6.5下安装Redis2.8.6和phpredis2.2.4扩展
    Centos系统安装 phpredis 扩展
    在centos6.3用yum安装redis
    CentOS 安装图形化界面方法
    解决Eclipse中文乱码
    apache mod_alias模块功能介绍
    php 使用serialize() 和 unserialize() 让对象成超级变量
    eclipse导入php项目
    php多文件上传类(含示例)
    PHP多图片上传类推荐
  • 原文地址:https://www.cnblogs.com/cjwnb/p/11733693.html
Copyright © 2011-2022 走看看