`
hoodbc
  • 浏览: 113214 次
  • 性别: Icon_minigender_1
  • 来自: 南宁
社区版块
存档分类
最新评论

3、多文件上传:uploadify在django中的使用(1)

阅读更多
和普通上传区别不大,用flash在上传操作时。django的csrf会报错,就直接在当前的方法给关掉了csrf。
1、

2、

3、

@csrf_exempt
def do_upload(request,action):
    if action =='my':
        file_obj = request.FILES.get('Filedata', None)
        user_id = request.POST.get('blue','')
        user_info = UserBase.objects.get(id=user_id)

        if file_obj:   
            fname = file_obj.name 
            this_file_name=file_obj.name 
            fname = user_id+str(time.strftime("%Y-%m-%d-%H-%M-%S"))+str(random.randint(0,9999)) + fname[fname.rfind('.'):]
            file_types = fname[fname.rfind('.'):]
            if os.path.isdir(homedir+'/pub/disk/'+user_id):
                pass
            else :
                os.mkdir(homedir+'/pub/disk/'+user_id)
            of = open(homedir+'/pub/disk/'+user_id+'/'+fname, 'wb+')
            for chunk in file_obj.chunks():   
                of.write(chunk)   
            of.close()


代码和普通上传一样,这里做了一个共享功能。能够把文件的下载权限给其他的人,主要是几个页面设计和js传值的小技巧。
   elif action=='go_share':
        if rbac.who(request)=='x':
            return system.index.login_out(request)
        else:
            users = rbac.who(request)
            
            if request.POST.getlist("user_name") and request.POST.get("id",""):
                names = request.POST.getlist("user_name")
                try:
                    FileUserList.objects.filter(file_id = request.POST.get("id",""),create_user_id=users.id).delete()
                except:
                    return HttpResponse('ok')
                for bc in names:
                    file_user = FileUserList()
                    file_user.user_id = bc
                    file_user.file_id = request.POST.get("id","")
                    file_user.create_time = time.strftime("%Y-%m-%d %H:%M:%S")
                    try:
                        file_user_s = FileUserList.objects.filter(file_id = request.POST.get("id",""),user_id = bc,create_user_id=users.id)
                    except:
                        pass
                        #return HttpResponse('okx')
                    else:
                        if len(file_user_s)>0:
                            pass
                        else:
                            user_info = UserBase.objects.filter(id= bc)[0]
                            file_user.true_name = user_info.true_name
                            file_user.create_user_id  = users.id
                            file_user.save()
                return HttpResponse('ok')
            
            elif type(request.POST.getlist("user_name")) is types.ListType  and request.POST.get("id",""):
                # user_name data is none, but has id ,so give me del all user info 
                try:
                    FileUserList.objects.filter(file_id = request.POST.get("id",""),create_user_id=users.id).delete()
                except:
                    return HttpResponse('okx')
                return HttpResponse('ok')


先到这,下次再把js效果弄上来。
  • 大小: 49.4 KB
  • 大小: 42 KB
  • 大小: 20.1 KB
0
8
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics