php - WordPress 插件从 mysql 打印图像

标签 php mysql wordpress

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

现在我可以将图像保存为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/

相关文章:

mysql - 简单的 SELECT COUNT SQL 查询错误

sql - 我可以仅在一个查询中执行此操作吗?

css - 溢出:可见将 div 高度折叠为零

php - 数据未插入数据库

php - (413) 文件上传 PHP 期间请求实体太大错误

php - MongoDB 从集合中提取数组元素

MYSQL - 如何连接两个查询以省略在第二个查询中找到的元素(或者可能有更好的解决方案?)

PHP Mysql数据库连接被拒绝

php - Laravel 中如何将多张图片保存到数据库中?

javascript - Wordpress:在另一个插件文件中使用一个插件文件的功能