显示上一页中插入的图像


Display inserted image from previous page

我正在制作一个分类网站,允许用户插入图像。图像数据通过表单发送到页面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's 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'">";

有三种可能性:

方法1:告诉浏览器veryfy.php是一个图像。这适用于

header("Content-type: image/png");

或任何其他图像类型(取决于您的结果)。但是,此方法不允许您同时发布文本。

方法2:保存图片(在数据库或文件服务器上),然后用<img>

方法3:使用base64编码:

<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIA...">

然而,这个应该只用于小文件,因为它会减慢页面的加载速度。更多信息:嵌入Base64图像