Django在Web根目录之外提供文件

时间:2013-05-05 17:26:09

标签: django

我目前已将Django设置为上传文件:

/路径/到/项目/上传

这很有效。该文件夹位于项目的根文件夹中,因此无法直接从Web URL提供文件,这就是我想要的,文件是用户上传的“CV”。

我已经看过一个名为filetransfers的第三方django应用程序可以完成这项工作,但我想知道Django核心是否有办法从媒体文件夹外部提供文件。

任何帮助都会很棒。

安迪

3 个答案:

答案 0 :(得分:2)

根据您使用的Web服务器,如果您使用Apache,我建议您使用X-sendfile;如果您使用Nginx,则建议使用X-accel-redirect。但请记住,您需要更改Web服务器中的设置。但这比使用Django更有效地提供文件的方式。

答案 1 :(得分:0)

如果你想要的是控制文件的服务方式/谁可以看到它们等,那么最简单的解决方案是编写一个自定义视图来提供这些文件。您只需提供文件的内容作为响应正文并设置相应的响应标头(文件类型,内容长度等)。阅读有关Response对象的FineManual(tm)部分应该是一个很好的起点。

答案 2 :(得分:0)

使用FileWrapper()解决。

非常感谢。