如果下载的资源和服务器是同域的,那么只要在a标签中添加download属性即可。
<a href="http://127.0.0.1:8000/a.jpg" download="a.jpg">下载a>
如果下载的资源和服务器是不同域的,那么添加download属性是没有效果的。
<a href="http://www.baidu.com/xxx.jpg" download="a.jpg">下载a>
解决办法:
在views.py中定义以下方法:
import urllib2
def file_download(request):
url=request.REQUEST['url']
filename=request.REQUEST['filename']
sourceFile = urllib2.urlopen(url)
response=HttpResponse(sourceFile.read())
response['Content-Type'] = 'application/octet-stream'
response['Content-Disposition'] = 'attachment;filename="{0}"'.format(filename)
return response
然后将a标签的href改一改就行了:
<a href="http://127.0.0.1:8000/file_download?url=http://www.baidu.com/xxx.jpg&filename=a.jpg">下载a>