認証されたユーザーは、アカウント ページの下にいくつかのデジタル コンテンツを持っており、ダウンロードできるはずです。直接の HTML リンクを提供するのではなく、ダウンロードをクリックしてファイルを配信するだけです。私は見ました:
これは関連する解決策であると思われ、他の人のために働いています。しかし、私が見ているのは、次のような意味で正しいことをしているように見えるということです:
ただし、何もダウンロードしません。また、Web サイトから PDF をダウンロードする場合のように、ダウンロードしても安全なコンテンツかどうかをブラウザが確認することもありません。
ダウンロードを許可しない可能性があるセキュリティ対策として設定されている settings.py の問題である可能性があります。しかし、それは他の何かかもしれません。
これが私が持っているものの例です:
filePath = os.path.abspath('static/media/files/' + fileName)
wrapper = FileWrapper(open(filePath), 'r')
contentType = mimetypes.guess_type(filePath)[0]
response = HttpResponse(wrapper, content_type = contentType)
response['Content-Length'] = os.path.getsize(filePath)
response['Content-Disposition'] = 'attachment; filename=%s/' % smart_str(os.path.basename(filePath))
return response
私が試した他のこと:
with open(filePath, 'rb') as f:
return HttpResponse(f.read(), mimetype='image/jpeg')
パイソン: 2.7.4
ピップフリーズ:
Cartridge==0.8.2
Django==1.5.4
Fabric==1.8.0
Mezzanine==1.4.16
PIL==1.1.7
Pillow==2.2.1
Pillow-PIL==0.1dev
South==0.8.2
argparse==1.2.1
bleach==1.2.2
cartridge-stripe==0.1.3
distribute==0.6.34
django-zebra==0.4.3
ecdsa==0.9
filebrowser-safe==0.2.30
grappelli-safe==0.2.22
gunicorn==18.0
html5lib==0.95
oauthlib==0.6.0
paramiko==1.12.0
pisa==3.0.33
psycopg2==2.5.1
pycrypto==2.6
pytz==2013.7
requests==1.2.3
requests-oauthlib==0.3.3
stripe==1.9.6
wsgiref==0.1.2