Python金字塔强制下载,无需在浏览器中打开文件

时间:2016-05-24 13:26:37

标签: python pyramid

我希望在请求出现时在python金字塔框架中实现强制

  

example.com/media/files/test.mp3   它在浏览器中打开并开始运行。我想阻止它并强行下载。

2 个答案:

答案 0 :(得分:1)

我只是按照这种方式工作,它适用于我强行下载我发送文件名请求参数

@view_config(route_name='download')
def download_view(request):
    MEDIA_PATH= os.path.join(PROJECT_ROOT, 'media'),
    if request.params.get('filename', ''):
        filename = request.params['filename']
        file_path = MEDIA_PATH + filename
        base_file_name = os.path.basename(file_path)           
   response = FileResponse(file_path, request=request,cache_max_age=86400)
   headers = response.headers
   headers['Content-Type'] = 'application/download'
   headers['Accept-Ranges'] = 'bite'
   headers['Content-Disposition'] = 'attachment;filename=' +base_file_name
   return response

在init.py中添加此视图

  

config.add_route(' download',' / download')

发送文件名参数对我有用。

答案 1 :(得分:-1)

只需将download="test.mp3"添加到下载链接。

所以它会像:

<a href="example.com/media/files/test.mp3" download="test.mp3">Download Now</a>