`
hoodbc
  • 浏览: 115100 次
  • 性别: 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
分享到:
评论

相关推荐

    基于django框架的博客例子和uploadify插件的例子

    这个例子可能展示了如何在Django应用中集成Uploadify,以实现用户友好的文件上传体验。 1. **jQuery**: jQuery是一个JavaScript库,简化了DOM操作、事件处理和Ajax交互。在这个例子中,jQuery被用来触发Uploadify的...

    django 使用uploadify和ajaxupload 上传图片Demo

    django上传图片的jquery实现 使用uploadify 实现 使用AjaxFileUpload实现 整个源码是一个pycharm工程 将所有的文件都包括了 如果还是报错,请安装第三方的包 比如PIL等

    上传文件插件

    文件上传在现代网页应用中是不可或缺的功能,尤其在社交媒体、文档分享、个人作品展示等领域更是常见。使用jQuery作为JavaScript库可以极大地提升用户交互体验,使文件上传过程更加人性化。以下是一些优秀的jQuery...

    分享20多个很棒的jQuery 文件上传插件或教程

    在网页开发中,文件上传是一项常见且重要的功能。随着技术的发展,传统的文件上传方式已经不能满足用户对于用户体验和效率的需求。jQuery,一个广泛使用的JavaScript库,提供了许多优秀的插件,使得文件上传变得更加...

    python实现上传下载文件功能

    在Django框架中,文件上传通常涉及到视图(views)的处理。`@csrf_exempt` 和 `@require_http_methods(["POST"])` 装饰器用于禁用CSRF保护(防止跨站请求伪造)并确保只接受POST请求。`uploadFiles` 函数接收一个`...

Global site tag (gtag.js) - Google Analytics