Я делаю секретный сайт, который позволяет пользователям вставлять изображения. Данные изображения отправляются через форму на страницу verify.php. Можно ли отобразить изображение на verify.php? Я пытался смотреть онлайн, но я нашел ответы только от людей, которые сначала вставляли изображение в mysql, а затем отображали его.
Вот мой код для страницы, где я хочу, чтобы изображение отображалось.
$name = $_FILES["image"]["name"];
$type = $_FILES["image"]['type'];
$size = $_FILES["image"]["size"];
$temp = file_get_contents($_FILES["image"]["tmp_name"]);
$error = $_FILES['image']["error"];
echo "<img src='$temp'>"; //this displays the
//binary code(I beleive that what it s called)
Значение в $temp
- это двоичная форма изображения! Таким образом, вы можете либо base64_encode()
и отобразить его следующим образом:
echo "<img src='data:image/png;base64," . base64_encode($temp) . "'>";
Вам нужно использовать метод move_uploaded_file и хранить изображение где-нибудь в общедоступном каталоге сервера:
$name = $_FILES["image"]["name"];
$uploads_dir = '/uploads';
$tmp_name = $_FILES["image"]["tmp_name"]
move_uploaded_file($tmp_name, "$uploads_dir/$name");
echo "<img src=\"$uploads_dir/$name\">";
Существует 3 возможности:
Способ 1. Расскажите своему браузеру, что veryfy.php - это изображение. Это работает с
header("Content-type: image/png");
или любого другого типа изображения (в зависимости от вашего результата). Однако этот метод не позволяет публиковать текст в одно и то же время.
Способ 2. Сохраните изображение (в базе данных или на файловом сервере), а затем загрузите его с помощью <img...>
Способ 3: Использовать кодировку base64:
<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIA...">
Однако этот файл следует использовать только для небольших файлов, так как он замедляет загрузку страницы. Дополнительная информация: Вложение Base64 изображений