强制下载App Engine上的文件

时间:2010-06-19 15:36:27

标签: python google-app-engine download content-disposition

我如何强制浏览器下载媒体文件而不是尝试传输它们?这些是我的应用程序目录中的静态文件。

2 个答案:

答案 0 :(得分:0)

您需要修改项目中的app.yaml,将application/octect-stream设置为mime_type。 检查此示例:

- url: /download
  static_dir: static/download
  mime_type : application/octect-stream

正如评论中正确陈述的那样,强制下载某个mime_type并不是一个好主意。 如果您的用户希望流式传输您的内容而不是下载它们,那么这是他们的决定,您不应强迫他们下载您的文件。
您可以提供两个不同的链接,一个包含流,另一个强制保存对话框。

答案 1 :(得分:0)

如果您使用的是java,则可以使用以下代码。

//Set content type
resp.setContentType("text/csv" + .getContentType());

//Set header for attachement
resp.setHeader("Content-Disposition","attachment;filename=Myfile.csv");

//Retrieve file from database and convert to byte
resp.getOutputStream().write(b.getFile().getBytes());

//Close stream 
resp.getOutputStream().close();