如何通过 Xsendfile (Django) 使用下载的 url 内容
How to use downloaded url content with Xsendfile (Django)
我想使用 mod - xsendfile(我已下载并安装)保存来自 url、外部页面的内容,我在变量 one_download.I 中使用 urllib 和 urllib2 读入这些内容我是新手,不确定如何正确配置某些 x-sendfile 属性。在下面的代码中,我假设我可以将 one_download 中的 urllib 内容直接放入 xsendfile,而不是采取中间步骤将其保存到 txt 文件,然后将该 txt - 文件传递给 xsendfile。
import urllib2,urllib
def download_from_external_url(request):
post_data = [('name','Dave'),]
# example url
#url = http://www.expressen.se/kronikorer/k-g-bergstrom/sexpartiuppgorelsen-rackte-inte--det-star-klart-nu/ - for example
result = urllib2.urlopen(url, urllib.urlencode(post_data))
print result
one_download = result.read()
# testprint content in one_download in shell
print one_download
# pass content in one_download, in dict c, to xsendfile
c = {"one_download":one_download}
c['Content-Disposition']= 'attachment; one_download=%s' %smart_str(one_download)
c["X-Sendfile"] = one_download # <-- not working
return HttpResponse(json.dumps(c),'one_download_index.html', mimetype='application/force-download')
这不是 X-Sendfile 的用途;它用于提供磁盘上已有的静态文件,而无需通过 Django。由于您正在动态下载文件,并且它无论如何都在内存中,所以您最好直接提供它。
我想使用 mod - xsendfile(我已下载并安装)保存来自 url、外部页面的内容,我在变量 one_download.I 中使用 urllib 和 urllib2 读入这些内容我是新手,不确定如何正确配置某些 x-sendfile 属性。在下面的代码中,我假设我可以将 one_download 中的 urllib 内容直接放入 xsendfile,而不是采取中间步骤将其保存到 txt 文件,然后将该 txt - 文件传递给 xsendfile。
import urllib2,urllib
def download_from_external_url(request):
post_data = [('name','Dave'),]
# example url
#url = http://www.expressen.se/kronikorer/k-g-bergstrom/sexpartiuppgorelsen-rackte-inte--det-star-klart-nu/ - for example
result = urllib2.urlopen(url, urllib.urlencode(post_data))
print result
one_download = result.read()
# testprint content in one_download in shell
print one_download
# pass content in one_download, in dict c, to xsendfile
c = {"one_download":one_download}
c['Content-Disposition']= 'attachment; one_download=%s' %smart_str(one_download)
c["X-Sendfile"] = one_download # <-- not working
return HttpResponse(json.dumps(c),'one_download_index.html', mimetype='application/force-download')
这不是 X-Sendfile 的用途;它用于提供磁盘上已有的静态文件,而无需通过 Django。由于您正在动态下载文件,并且它无论如何都在内存中,所以您最好直接提供它。