您现在的位置是:网站首页>>Python>>Django

django 上传(一)

发布时间:2018-10-25 16:50:25作者:wangjian浏览量:486点赞量:0

    我这里上传图片没有使用Python的图像处理组件,使用的方法时生成一个文件,然后将我们获取到的文件信息存放到我们生成的文件中来实现文件上传,以下方法适用于单文件上传和多文件上传


    from django.https import JsonResponse
    import json,os,time,random
    from django.views.decorators.csrf import csrf_exempt
    # 图片上传
    @csrf_exempt  # 去除csrf验证
    def Upload(request):
        filesList = request.FILES.getlist('file')  # 获取图片信息
        path = os.getcwd()  # 获取项目路径
        save_info = []
        try:
          for files in filesList:
            name = files .name #获取上传的文件名
            #获取上传文件的后缀
            file_name = os.path.splitext(name)
            file,key = file_name
            #filename参数是由时间戳+(0-100)的随机数构成
            filename = str(int(time.time())) + str(random.randint(0,100)) + key # 设置图片名称
            #判断目录是否存在
                    if not os.path.exists(path + '/media/'):
                        os.mkdir(path + '/media/')
            filename = '/media/' + filename;
            sava_path = path + filename  # 设置图片存放地址
                
            # 将图片分段读取并写入文件
            with open(sava_path, 'wb') as f:
              for file in files.chunks():
                f.write(file)
                f.flush()
            save_info.append(sava_path) #将上传图片的信息存到save_info的列表中
          
                   
        except:
           # 上传失败
           pass


0 +1