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

和普通上传区别不大,用flash在上传操作时。django的csrf会报错,就直接在当前的方法给关掉了csrf。
1、
[img]http://dl.iteye.com/upload/attachment/427779/dc45767d-6836-331f-be85-431e80bc35f1.png[/img]
2、
[img]http://dl.iteye.com/upload/attachment/427782/aa250da0-1195-3ad2-a289-be3f7bbb02d2.png[/img]
3、
[img]http://dl.iteye.com/upload/attachment/427777/ae55efb7-523c-368c-b547-df5c6c064e78.png[/img]

@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效果弄上来。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值