在App Engine上强制下载文件

2 投票
2 回答
916 浏览
提问于 2025-04-16 00:11

我该怎么做才能让浏览器下载媒体文件,而不是试图直接播放它们?这些文件都是我应用程序目录里的静态文件。

2 个回答

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();
0

你需要修改你项目中的 app.yaml 文件,把 application/octet-stream 设置为 mime_type。看看这个例子:

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

正如评论中正确指出的,强制某种 mime_type 来下载文件并不是个好主意。如果你的用户更喜欢在线查看内容而不是下载,那是他们的选择,你不应该强迫他们下载你的文件。
你可以提供两个不同的链接,一个是在线查看,另一个是强制弹出保存对话框。

撰写回答