首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >apache x-sendfile找不到文件

apache x-sendfile找不到文件
EN

Stack Overflow用户
提问于 2016-08-19 07:54:51
回答 1查看 737关注 0票数 0

还有很多关于x-sendfile没有返回文件的问题,但似乎没有一个能够解决我的问题。

我从站点公共根目录之外的目录中提供图像,并希望能够以尽可能少的开销将这些图像传递给用户,因此我希望避免使用readfile()处理它们。因此,我尝试使用x-sendfile。

我的开发环境包括在64位windows上安装XAMPP (apache和php)。我使用的是mod_xsendfile.so的64位windows二进制文件,它似乎是根据phpinfo()正确加载的。

我认为这可能是大小写敏感或反斜杠/正斜杠的问题,但情况似乎并非如此。

如果我从错误日志中复制路径并将其粘贴到资源管理器窗口中,则该文件确实存在。我还使用了file_exists和文件大小来验证php中的路径。

httpd.conf设置:

代码语言:javascript
复制
LoadModule xsendfile_module modules/mod_xsendfile.so
XSendFile On
XSendFilePath "c:/images-store/"

PHP代码

代码语言:javascript
复制
header('Content-Type: image/jpeg');
header('X-Sendfile: c:/image-store/5cca6ef24ae46c4346c24846ee3e5521213562ef-thumb.jpg');

错误日志条目

代码语言:javascript
复制
[pid 3208:tid 1900] (20023)The given path was above the root path: [client 127.0.0.1:57477] xsendfile: unable to find file: c:/image-store/5cca6ef24ae46c4346c24846ee3e5521213562ef-thumb.jpg

任何关于如何让这些文件被提供服务的见解都将是很棒的。

EN

回答 1

Stack Overflow用户

发布于 2016-08-19 08:27:47

结果是区分大小写。路径中的C必须是大写的C。

代码语言:javascript
复制
XSendFilePath C:/images-store/

我可能应该切换回linux来进行我的开发……

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39029201

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档