我正在开发一个新插件。我在数据库中创建了一个新表。
现在我可以将图像保存为medium 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>
并显示保存在数据库中的图像
<?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>
为了向浏览器显示 BLOB 图像,我们必须创建一个 PHP 文件来执行以下操作。
从 MySQL BLOB 获取图像数据和类型 使用 PHP header() 将内容类型设置为图像(image/jpg、image/gif...)。 打印图像内容。
祝你好运,尝试一下
关于php - WordPress 插件从 mysql 打印图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34677690/