通过 PHP 访问不在 web 文件夹中的 jpg
Posted
技术标签:
【中文标题】通过 PHP 访问不在 web 文件夹中的 jpg【英文标题】:accessing a jpg which is not in the web folder through PHP 【发布时间】:2019-08-11 21:08:33 【问题描述】:我最近发现了一个 youtube 视频,其中介绍了在网络浏览器中访问 PDF。这很有趣,因为我怀疑我可以在系统上的任何位置(给定权限)访问 PDF,并通过 php 将其传递给 Web 浏览器。
我不希望他成为安全讨论,所以请避免安全问题!
https://www.youtube.com/watch?v=z4a6QJSGL28
代码看起来像这样
$file="/home/kodi/Pictures/scans/test.pdf";
$filename="test.pdf";
header('Content-type: application/pdf');
header('Content-disposition: inline; filename="'.$filename.'"');
header('Content-Transfer-Encoding: binary');
header('Accept-Ranges: bytes');
@readfile($file);
所以我测试了它,然后我尝试了这个
$file="/home/kodi/Pictures/scans/test.jpg";
$filename="test.jpg";
header('Content-type: application/jpg');
header('Content-disposition: inline; filename="'.$filename.'"');
header('Content-Transfer-Encoding: binary');
header('Accept-Ranges: bytes');
@readfile($file);
奇怪的是,这并没有显示在网络浏览器中,但几秒钟后,我用于下载 jpg 的首选应用程序打开了,并且出现了文件。它已下载而不是在浏览器中打开。
我一直在开发一个 LAN 应用程序,它可以通过 PAM 身份验证访问服务器上的用户文件夹,并且一直在使用 base64 编码,但是我觉得如果我可以减少 base64 图像 (30%) 的开销,转换和字面意思转换列表中的每个图像以显示指向它们的链接,系统加载速度会更快。这肯定是一个更好的方法,但每个人都说这种事情行不通!有证据表明它可以在我从用户文件夹中的 Web 服务器下载的文件中运行 ios。
任何想法如何使它与 jpg 一起使用?
【问题讨论】:
【参考方案1】:您的内容类型不正确,应该是 image/jpeg,而不是 application/jpg
【讨论】:
以上是关于通过 PHP 访问不在 web 文件夹中的 jpg的主要内容,如果未能解决你的问题,请参考以下文章
如何在“另存为”对话框中强制使用正确的文件扩展名? (.jpg 而不是 .php)