我正在制作一个允许用户插入图片的机密网站。图像数据通过表格发送到页面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)
答案 0 :(得分:4)
$temp
中的值是图像的二进制形式!所以你可以base64_encode()
并以这种方式显示它:
echo "<img src='data:image/png;base64," . base64_encode($temp) . "'>";
答案 1 :(得分:0)
您需要使用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\">";
答案 2 :(得分:0)
有三种可能性:
方法1: 告诉您的浏览器veryfy.php是一张图片。这适用于
header("Content-type: image/png");
或任何其他图像类型(取决于您的结果)。 但是,此方法不允许您同时发布文本。
方法2: 保存图片(在数据库或文件服务器上),然后使用&lt; img ...&gt;
加载它方法3: 使用base64编码:
<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIA...">
但是,这个应该只用于小文件,因为它会减慢页面的加载速度。更多信息:Embedding Base64 Images