开心123 发表于 2016-12-29 06:43:36

DX2开启X-sendfile后和Nginx的Expire冲突,导致图片不能用附件下载的方式下载

原地址:http://www.discuz.net/thread-2312645-1-1.html


我的服务器使用nginx1.1.0
X-sendfile设置如下

[*]
[*]        location /down {
[*]        internal;
[*]        alias    /home/data/bbs/data/attachment/forum;
[*]        }

复制代码
静态文件Expires设置如下

[*]location ~* \.(gif|jpg|jpeg|png|bmp|ico|css|js|swf)$
[*]        {
[*]            access_log off;
[*]            expires 30d;
[*]            FileETag on;
[*]            etag_format "%X%X";
[*]        }

复制代码
config_global.php附件下载设置如下:

[*]$_config['download']['readmod'] = 4;
[*]$_config['download']['xsendfile']['type'] = '1';
[*]$_config['download']['xsendfile']['dir'] = '/down/';

复制代码
  现出现这个问题,就是但凡出现在Exipres设置里的文件类型,都无法通过附件的方式下载,但是图片可以直接显示在论坛里,把鼠标移动到图片上以后,出现”下载附件“的链接,点击后就显示找不到附件。如果从Expires设置里去掉相应的后缀,就不会出现这个问题,请官方查看一下具体是什么原因引起的
  自己解决了,在forum_attachment.php找到

[*]$type = intval($xsendfile['type']);

复制代码
在底下加上
[*]        if($isimage){
[*]                $type = 0;
[*]        }

复制代码
页: [1]
查看完整版本: DX2开启X-sendfile后和Nginx的Expire冲突,导致图片不能用附件下载的方式下载