Php Wordpress插件从mysql打印图像

Php Wordpress插件从mysql打印图像,php,mysql,wordpress,Php,Mysql,Wordpress,我正在开发一个新插件。我在数据库中创建了一个新表 现在我可以保存一个图片在类型中blob,但我不能恢复到放在网站上,只有出现二进制代码 我如何编码这个二进制代码来显示图像 这是保存图像的代码 $tipo = $_FILES['vehiculo_inserta_imagen']['type']; $tamanio = $_FILES['vehiculo_inserta_imagen']['size']; $imagen_temporal = $_FILES['vehiculo_inserta_i

我正在开发一个新插件。我在数据库中创建了一个新表

现在我可以保存一个图片在类型中blob,但我不能恢复到放在网站上,只有出现二进制代码

我如何编码这个二进制代码来显示图像

这是保存图像的代码

$tipo = $_FILES['vehiculo_inserta_imagen']['type'];
$tamanio = $_FILES['vehiculo_inserta_imagen']['size'];
$imagen_temporal  = $_FILES['vehiculo_inserta_imagen']['tmp_name'];
//leer el archivo temporal en binario
$fp     = fopen($imagen_temporal, 'r+b');
$data = fread($fp, filesize($imagen_temporal));
fclose($fp);        
//escapar los caracteres
$data = mysql_escape_string($data);
我尝试使用以下代码进行恢复:

$usuario = esc_attr($current_user->user_login);
$table_name = $wpdb->prefix . "vehiculos";

$vehiculo= $wpdb->get_row("SELECT * FROM $table_name where matricula = '$usuario'; " ); 

嗨,也许你的代码有错误 请尝试此操作并检查您的代码

用于上传图像

<?php
if(count($_FILES) > 0) {
if(is_uploaded_file($_FILES['userImage']['tmp_name'])) {
mysql_connect("localhost", "root", "");
mysql_select_db ("phppot_examples");
$imgData =addslashes(file_get_contents($_FILES['userImage']['tmp_name']));
$imageProperties = getimageSize($_FILES['userImage']['tmp_name']);
$sql = "INSERT INTO output_images(imageType ,imageData)
VALUES('{$imageProperties['mime']}', '{$imgData}')";
$current_id = mysql_query($sql) or die("<b>Error:</b> Problem on Image Insert<br/>" . mysql_error());
if(isset($current_id)) {
header("Location: listImages.php");
}}}
?>
<HTML>
<HEAD>
<TITLE>Upload Image to MySQL BLOB</TITLE>
<link href="imageStyles.css" rel="stylesheet" type="text/css" />
</HEAD>
<BODY>
<form name="frmImage" enctype="multipart/form-data" action="" method="post" class="frmImageUpload">
<label>Upload Image File:</label><br/>
<input name="userImage" type="file" class="inputFile" />
<input type="submit" value="Submit" class="btnSubmit" />
</form>
</div>
</BODY>
</HTML>

我不建议对二进制数据使用转义函数,它可能会损坏图像。您是如何插入数据库的?在
$wpdb->get_row()
之后,您如何处理它?
<?php
$conn = mysql_connect("localhost", "root", "");
mysql_select_db("phppot_examples") or die(mysql_error());
if(isset($_GET['image_id'])) {
$sql = "SELECT imageType,imageData FROM output_images WHERE imageId=" . $_GET['image_id'];
$result = mysql_query("$sql") or die("<b>Error:</b> Problem on Retrieving Image BLOB<br/>" . mysql_error());
$row = mysql_fetch_array($result);
header("Content-type: " . $row["imageType"]);
echo $row["imageData"];
}
mysql_close($conn);
?>
<?php
$conn = mysql_connect("localhost", "root", "");
mysql_select_db("phppot_examples");
$sql = "SELECT imageId FROM output_images ORDER BY imageId DESC"; 
$result = mysql_query($sql);
?>
<HTML>
<HEAD>
<TITLE>List BLOB Images</TITLE>
<link href="imageStyles.css" rel="stylesheet" type="text/css" />
</HEAD>
<BODY>
<?php
while($row = mysql_fetch_array($result)) {
?>
<img src="imageView.php?image_id=<?php echo $row["imageId"]; ?>" /><br/>
<?php       
}
mysql_close($conn);
?>
</BODY>
</HTML>