python的django框架下载_Django框架文件下载的实现?

用 Django 实现的资源分享网站,在写下载的时候出现了点问题,不知道怎么办,百度不到,就来问问,在线等,急。

这个是报的错,文件是通过 model 的 FileField 和 form 的 FileField 的传到 upload 文件夹的。

def resource_upload(req):

if req.method == 'POST':

ruf = ReUpForm(req.POST, req.FILES)

if ruf.is_valid():

resource = Resource()

resource.re_name = ruf.cleaned_data['re_name']

resource.re_file = ruf.cleaned_data['re_file']

resource.post_img = ruf.cleaned_data['post_img']

resource.pre_img1 = ruf.cleaned_data['pre_img1']

resource.pre_img2 = ruf.cleaned_data['pre_img2']

resource.rating = ruf.cleaned_data['rating']

resource.re_class = ruf.cleaned_data['re_class']

resource.re_year = ruf.cleaned_data['re_year']

resource.summary = ruf.cleaned_data['summary']

resource.save()

return render_to_response('uploadsuccess.html', {})

else:

return render_to_response('upload.html', {'ruf': ruf, 'error_info': '上传出错,请重新填写上传信息.'})

else:

ruf = ReUpForm()

return render_to_response('upload.html', {'ruf': ruf, 'error_info': ''})

这是上传代码

def download(req):

re_id = int(req.session.get('id'))

resource = Resource.objects.get(id = re_id)

def file_iterator(file_name, chunk_size = 512):

with open(file_name, 'rb') as f:

while True:

c = f.read(chunk_size)

if c:

yield c

else:

break

f.close()

the_file_name = str(resource.re_file)

print type(the_file_name)

response = StreamingHttpResponse(file_iterator(the_file_name))

response['Content-Type'] = 'application/octet-stream'

response['Content-Disposition'] = 'attachment;filename="{0}"'.format(the_file_name)

return response

这是下载代码,麻烦帮我看下吧~~

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值