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