問題:
Django 如何安全地提供可下載文件,同時隱藏其直接下載路徑?
答案:
Django 不直接支援提供可下載檔案。要實現此功能,請考慮以下方法:
使用xsendfile 模塊
優點:
實作:
from django.utils.encoding import smart_str from django.http import HttpResponse def download_view(request): file_path = '/home/user/files/somefile.txt' file_name = 'somefile.txt' response = HttpResponse(content_type='application/force-download') response['Content-Disposition'] = 'attachment; filename=%s' % smart_str(file_name) response['X-Sendfile'] = smart_str(file_path) return response
注意:此方法需要在您的伺服器上啟用 mod_xsendfile。
結論:
透過使用 xsendfile 模組,您可以安全地在 Django 中提供可下載文件,同時防止直接存取其原始位置。這種方法在處理文件下載方面提供了安全性和靈活性。
以上是如何在 Django 中安全地提供可下載檔案而不暴露直接檔案路徑?的詳細內容。更多資訊請關注PHP中文網其他相關文章!