我希望我的PHP脚本从文件系统加载图像并将其传递给javascript的AJAX响应,然后使用FileReader将图像加载到浏览器中。我不能使用image src,因为文件系统是私有的,无法直接访问。
我找到的唯一解决方案是使用函数imagecreatefromjpg,imagecreatefrompng等。这些函数的问题是它们消耗的内存比实际图像大小多得多。我想要的只是将图像作为普通文件传递,让javascript处理它。
编辑:
我有一些图像存储在 / private / images 中。私人文件夹阻止通过.htaccess访问。我基本上是从 /public/test.php 发送一个AJAX请求到一个处理程序, /public/handler.php ,它应该访问 / private / images 并发回由文件名和扩展名指定的图像。
到目前为止,我只测试了几张图片,所以我只是将名称硬编码到函数调用中。
答案 0 :(得分:1)
使用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);