2014-09-10 3 views
0

Я хочу, чтобы мой PHP-скрипт загрузил изображение из файловой системы и передал его через ответ AJAX на javascript, который затем загружает изображение в браузер с помощью FileReader. Я не могу использовать изображение src для этого, потому что файловая система является частной и к ней нельзя получить доступ напрямую.Как читать изображение в файл?

Единственное решение, которое я нашел, это использовать функции imagecreatefromjpg, imagecreatefrompng и т. Д. Проблема с этими функциями заключается в том, что они потребляют намного больше памяти, чем фактический размер изображения. Все, что я хочу, это передать изображение как обычный файл и позволить JavaScript обрабатывать его.

EDIT:

У меня есть несколько изображений, сохраненных в /частных/изображений. Частная папка блокирует доступ через .htaccess. Я в основном отправить запрос AJAX от /public/test.php обработчика, /public/handler.php, который должен получить доступ к /личным/изображениям и отправить обратно изображение, указанное именем файла и расширением.

Пока что я тестирую только с несколькими изображениями, поэтому просто перекодирую имя в вызов функции.

+3

должно быть намного проще, если вы покажете, как ваша страница PHP знает, что файл для загрузки. – AbraCadaver

+0

Я полностью потерян. Я знаю, как получить изображение из формы HTML и сохранить его, но я не знаю, как вернуть его без указания src. – ondrejba

+1

Используйте ' AbraCadaver

ответ

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); 
Смежные вопросы