Php 如何将图像读入文件?

Php 如何将图像读入文件?,php,Php,我希望我的PHP脚本从文件系统加载一个图像,并将其通过AJAX响应传递给javascript,然后使用FileReader将图像加载到浏览器中。我不能使用image src,因为文件系统是私有的,不能直接访问 我发现的唯一解决方案是使用函数imagecreatefromjpg、imagecreatefrompng等。这些函数的问题是它们消耗的内存比实际图像大小多得多。我只想将图像作为普通文件传递,并让javascript处理它 编辑: 我在/private/images中存储了一些图像。私有文件

我希望我的PHP脚本从文件系统加载一个图像,并将其通过AJAX响应传递给javascript,然后使用FileReader将图像加载到浏览器中。我不能使用image src,因为文件系统是私有的,不能直接访问

我发现的唯一解决方案是使用函数imagecreatefromjpg、imagecreatefrompng等。这些函数的问题是它们消耗的内存比实际图像大小多得多。我只想将图像作为普通文件传递,并让javascript处理它

编辑:

我在/private/images中存储了一些图像。私有文件夹阻止通过.htaccess进行访问。我基本上是从/public/test.php向处理程序/public/handler.php发送一个AJAX请求,该处理程序应该访问/private/images并返回一个由文件名和扩展名指定的图像


到目前为止,我只使用了一些图像进行测试,所以我只是将名称硬编码到函数调用中。

使用
readfile
并为您的文件发送适当的标题:

$fileMimeType = finfo_file(finfo_open(FILEINFO_MIME_TYPE), $filePath);
header("Content-Length: " . filesize($filePath));
header("Content-Type: " . $fileMimeType);
header("Content-Transfer-Encoding: binary");
header("Pragma: public");
readfile($filePath);

如果你展示你的PHP页面如何知道要加载什么文件,应该会容易得多。我完全迷路了。我知道如何从HTML表单获取图像并保存它,但我不知道如何在不指定src的情况下获取图像。使用
则PHP文件只执行
readfile('/private/images/'.$\u get['image'])。这是一个不安全的例子。