vlambda博客
学习文章列表

Nginx配置不同文件夹下浏览pdf等文件及下载总结

有个需求是:数据将pdf文件放在linux服务器上3个文件下,代表3类pdf文件,数据库表里有个字段 file_path保存了对应的pdf文件的绝对路径,如: / home/wangyafan/hb/HJ T 24-1998  (500Kv超高压送变电工程电磁辐射环境影响评价技术规范).pdf, 前端想通过这个路径预览pdf文件,并可以下载pdf文件。于是,我就尝试一下nginx是否可以做这个:
三类文件的pdf在三个文件下,在nginx下面配置了三个location:
location ^~ /home/wangyafan/db { alias /home/wangyafan/db; autoindex on; autoindex_exact_size on; autoindex_localtime on; charset utf-8; if ($request_filename ~* ^.*?\.(txt|doc|pdf|rar|gz|zip|docx|exe|xlsx|ppt|pptx)$){ add_header Content-Disposition: 'p_w_upload;'; } }  location ^~ /home/wangyafan/gb { alias /home/wangyafan/gb; autoindex on; autoindex_exact_size on; autoindex_localtime on; charset utf-8; if ($request_filename ~* ^.*?\.(txt|doc|pdf|rar|gz|zip|docx|exe|xlsx|ppt|pptx)$){ add_header Content-Disposition: 'p_w_upload;'; } } location ^~ /home/wangyafan/hb { alias /home/wangyafan/hb; autoindex on; autoindex_exact_size on; autoindex_localtime on; charset utf-8; if ($request_filename ~* ^.*?\.(txt|doc|pdf|rar|gz|zip|docx|exe|xlsx|ppt|pptx)$){ add_header Content-Disposition: 'p_w_upload;'; } }
这样配置的好处是,访问的时候地址:
 http://ip:端口号 + file_path(数据库的字段)     #这样就可以直接访问
预览和下载的效果如下:

特此,记录一下。