Intereting Posts
Проблемы с соединением вида и контроллера Какой лучший алгоритм хэширования паролей для PHP? php PDO fetchAll () – пока не работает, foreach works Установите изображение профиля пользователя по умолчанию на изображение их инициалов Файл не записывается, даже если разрешения 777 Проблемы с CakeEmail на сервере PHP выполнить код на странице закрыть mysql update или вставить несколько записей, если они еще не существуют в таблице Слово прерывается на языках без пробелов между словами (например, азиатскими)? Как определить, какая кнопка отправки была нажата в форме Zend Framework? Как определить пространство сервера для загруженного файла или нет? Можно ли параметризовать имя таблицы в подготовленном заявлении? PHPDoc: документирование функции с переменным числом аргументов Тег комментариев Mysql, разбивающий мой код (PHP) Как переписать .php на .html с правилами mod_rewrite

защита изображений в кодеринговом

Я использую следующий код в своем контроллере:

//function to protect images from being accessed directly. function getImage($img_id){ //code to authenticate user goes here then... $url = $this->data['base_url'].'system/application/images/c/thumbs/'; $filepath = $url.$img_id; header("Content-type: image/jpeg"); if(file_exists($filepath)){ echo "we are here"; $img_handle = imagecreatefromjpeg($filepath) or die(""); echo $img_handle; ImageJpeg($img_handle); } } 

На мой взгляд, чтобы получить изображения, я использовал следующий код:

 <img src='<?php echo base_url(); ?>index.php/Controller/getImage/obama.jpg' width="100px"> 

Теперь, даже если он входит в контроллер, он не отображает изображение. Файл Obama находится в правильном каталоге. Понятия не имею почему.

Ваша проблема заключается в том, что вы выводите текст в браузер, а затем изображение. Браузер попытается отобразить изображение, но он будет поврежден.

 header("Content-type: image/jpeg"); if(file_exists($filepath)){ echo "we are here"; $img_handle = imagecreatefromjpeg($filepath) or die(""); echo $img_handle; ImageJpeg($img_handle); } 

Кроме того, если вы хотите сделать echo вы не можете отправить header говорящий «эй, это изображение jpeg».

вы уверены, что изображение можно получить через $ this-> data ['base_url']. 'system / application / images / c / thumbs / obama.jpg, вы пытались получить доступ к нему в браузере, не так ли?

Кроме того, избегайте печати текста перед визуализацией изображения, это может привести к повреждению изображения.

Если все еще не работает, дайте нам знать скриншот страницы с ошибкой, что это значит.