页面想实现文件预览,有文件地址,文件预览不想调后端接口,想通过nginx实现预览效果(只预览不下载),怎么处理?
下边是nginx conf配置文件预览部分内容
server{
listen 9990;
server_name localhost;
# 配置预览
location /yulan {
alias D:/FFOutput;
autoindex on;
}
}
{在网上找了很多,都是预览+下载,我试的时候,只有下载的效果。
以下是试过的方案:
失败方案1.# 文件预览
# 分别将文件的高中低质量存放在 high、middle、low 文件夹中
# 根据参数img-process 访问不同压缩质量的文件,默认高质量
# 如中质量:http://file.domain.com/a.jpg?img-process=img-quality-middle
location ^~ / {
set $fpwd '/home/user/storage/high/';
if ( $arg_img-process = 'img-quality-low' ) {
set $fpwd '/home/user/storage/low/';
}
if ( $arg_img-process = 'img-quality-middle' ) {
set $fpwd '/home/user/storage/middle/';
}
if ( $arg_img-process = 'img-quality-high' ) {
set $fpwd '/home/user/storage/high/';
}
# 判断文件是否存在
if ( !-e $request_filename ) {
set $fpwd '/home/user/storage/high/';
}
alias $fpwd;
break;
}
失败方案2.location / {
autoindex on;
autoindex_exact_size on;
autoindex_localtime on;
if ($request_filename ~* ^.*?.(txt|doc|pdf|rar|gz|zip|docx|exe|xlsx|ppt|pptx)$){
add_header Content-Disposition: 'p_w_upload;';
}
}
以上配置允许的文件格式后缀,文件可以打开,可以下载。
失败方案3.配置支持预览及下载
server {
listen 80;
server_name download.xxx.com;
location ^~ /download {
alias /tmp/temp/;
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;';
}
}
}
以上配置允许的文件格式后缀,文件可以打开,可以下载。}
实话还是没有怎么懂你要表达的意思,
如果是图片文件:浏览器预览没得问题吧,只要文件地址是对的
如是其他问题,比如:PDF、PPT这一些文件,是不是要借助对应的文件查看器来查看,当然微软的edge浏览器对PDF这一些文件默认都是浏览的方式打开远程文件
我想知道能否通过配置nginx,访问nginx地址,访问文件时能否像访问图片一样直接在浏览器浏览,而不是直接下载
@nuli,学无止境: 你访问文件,无论时NGINX访问远程文件,还是访问本地文件,文件访问到后,要预览,肯定要哟对应的工具(查看器)才能预览啊
@程序员修炼之旅: 楼主的意思应该是:比如:浏览器访问图片地址的时候浏览器要预览图片,此时如果用户要下载可以直接右键另存为图片下载。而不是访问图片地址后图片没有预览就直接弹出下载图片保存的对话框。都没有预览效果。