Я хочу вернуть изображение через URL, например http://placehold.it/500×500.
У меня есть мой URL http://example.inc/assets/image/35345, который вызывает действие на контроллере. Контроллер получает некоторые данные (имя, идентификатор и т. Д.) Из базы данных, а также двоичную строку содержимого изображения.
На веб-сайте у меня есть мой тег img, где я хочу вызвать URL в моем атрибуте src.
<img src="http://example.inc/assets/image/35345">
Еще немного информации, я использую slim PHP Framework, а мой сервер — система Ubuntu 13.x (бродячая и т. Д.). Я, как правило, веб-разработчик и не имею хороших навыков @ PHP.
Следующие фрагменты работ:
$file = fopen($name, 'wb');
fwrite($file, $binaryData);
fclose($file);
но я не хочу создавать файлы в каталоге. Это возможно?
РЕДАКТИРОВАТЬ: Content-Type и Content-Length Headers установлены, это не проблема.
Возьмите содержимое изображения, base_64 закодируйте его, затем верните изображение base64.
$file = file_get_contents($name);
list($width, $height, $type, $attr) = getimagesize($file);
echo '<img src="data:image/'.$type.';'.base64_encode($file).'"/>';
if ($_FILES['file']['name'] != "") {
$filename = $_FILES['file']['name']; //getting name of the file from form
$filesize = $_FILES['file']['size'];
$info = new SplFileInfo($filename);
$ext = $info->getExtension();
$filesize1 = ($filesize * .0009765625) * .0009765625;
if (!($ext == 'jpg' || $ext == 'png' || $ext == 'jpeg')) {
//set some error message and redirect
}
if ($filesize1 >= 5.0) {
//set message image size should be less than 5 mb
}
$target_path = $_SERVER['DOCUMENT_ROOT'] . "../images/profile_images/";
move_uploaded_file($_FILES['file']['tmp_name'], "$target_path" . $_FILES['file']['name']) or
die("Could not copy file!");
}
<a href='../images/profile_images/$profile_image'><img alt='Avatar' src='../images/profile_images/$profile_image'></a>
надеюсь, что этот ответ поможет вам.
Поскольку у меня была база данных mssql с iso charset, я конвертировал все свои результаты в utf-8, проблема заключалась в том, что строка байтов также конвертировалась в utf-8.
после неконвертирования bytestring я также возвратил bytestring и установил тип содержимого заголовка как image / extension