如何将图片插入到数据库中
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何将图片插入到数据库中相关的知识,希望对你有一定的参考价值。
参考技术A 第一步://获取当前选择的图片this.pictureBox1.Image = Image.FromStream(this.openFileDialog1.OpenFile());//获取当前图片的路径string path = openFileDialog1.FileName.ToString();//将制定路径的图片添加到FileStream类中FileStream fs = new FileStream(path, FileMode.Open, FileAccess.Read);//通过FileStream对象实例化BinaryReader对象BinaryReader br = new BinaryReader(fs);//通过BinaryReader类对象的ReadBytes()方法将FileStream类对象转化为二进制数组byte[] imgBytesIn = br.ReadBytes(Convert.ToInt32(fs.Length));第二步://将图片添加到数据库中string sql="insert into pic values(@pic)";SqlParameter[] param = new SqlParameter[] new SqlParameter("@pic", imgBytesIn) ;DBHelper.GetExecuteQuery(sql, param);第三步://将图片从数据库中取出string sql="select * from pic where id=0";SqlDataReader reader = DBHelper.GetExecuteReader(sql, null);MemoryStream mss = null;为 MYSQL 数据库插入特定图像
【中文标题】为 MYSQL 数据库插入特定图像【英文标题】:Inserting Specific Image for MYSQL Database 【发布时间】:2013-08-01 12:57:52 【问题描述】:我目前正在创建一个应用程序,该应用程序可以获取 Instagram 图片列表,然后将某些图片(根据您的选择)插入到特定数据库中。
目前,当我选择提交按钮时,它会抓取列表中最后一个可用的图像并将其插入到我的数据库中。每个图像都分配有一个提交按钮。 我如何确保与提交按钮相关的正确图像是插入到数据库中的图像。
以下是我的图片列表代码和每张图片的提交按钮:
foreach ($media->data as $data)
echo $pictureImage = "<img src=\"$data->images->thumbnail->url\">";
echo "<form action='tag.php' method='post'>";
echo "<input type='submit' name='submit' value='Click Me'>";
echo "</form>";
这就是我将图像插入数据库的方式。请记住,这会抓取列表中最后一个可用的图像并将其插入。
if(isset($_POST['submit']))
// There variables are for the database information
$hostname = "random";
$username = "random";
$dbname = "random";
$password = "random!";
$usertable = "random";
//Connecting to your database
$con = mysql_connect($hostname, $username, $password) OR DIE ("Unable to
connect to database! Please try again later.");
mysql_select_db($dbname, $con);
$sql="INSERT INTO $usertable (image) VALUES ('$pictureImage')";
if (!mysql_query($sql,$con))
die('Error: ' . mysql_error($con));
mysql_close($con);
有什么建议吗?
【问题讨论】:
【参考方案1】:将您的表单更改为:
echo "<form action='tag.php' method='post'>";
foreach ($media->data as $data)
echo "<img src=\"$data->images->thumbnail->url\">";
echo "<input type=\"hidden\" name=\"image[]\" value=\"".$data->images->thumbnail->url."\">";
echo "<input type='submit' name='submit' value='Click Me'>";
echo "</form>";
然后在后端处理 $image[] 数组。
foreach ($_POST['image'] as $k=>$image)
$sql="INSERT INTO $usertable (image) VALUES ('$image')";
if (!mysql_query($sql,$con))
die('Error: ' . mysqli_error($con));
您可能需要对代码再做一些小的更改,但这个逻辑应该可以工作。
更新:由于 OP 想要为每个图像一个按钮,这是代码:
foreach ($media->data as $data)
echo "<form action='tag.php' method='post'>";
echo "<img src=\"$data->images->thumbnail->url\">";
echo "<input type=\"hidden\" name=\"image\" value=\"".$data->images->thumbnail->url."\">";
echo "<input type='submit' name='submit' value='Click Me'>";
echo "</form>";
然后应该将 foreach ($_POST['image'] ) 部分更改为:
$sql="INSERT INTO $usertable (image) VALUES ('".file_get_contents($_POST['image'])."')";
if (!mysql_query($sql,$con))
die('Error: ' . mysqli_error($con));
这应该按照 OP 的需要在数据库中插入实际的图像图像。
【讨论】:
了解您的第二部分,但不一定是第一部分。为什么不像我最初那样以表格的形式显示图像? $pictureImage 发生了什么? 您的原始逻辑为每个不需要的图像创建一个表单。此外, 我想对答案中的代码进行一些小的更新,但每次尝试更新时都会出错。 稍等片刻尝试或进行一次硬刷新。我现在正在尝试使用您的代码,但可能我的展示位置等已关闭。 您能否修改输入类型代码以使斜杠不会引起问题?【参考方案2】:如果你想为每张图片都有一个提交按钮,你可以保持多表单构造,只需添加:
echo "<input type='hidden' name='image_url' value='".$data->images->thumbnail->url."'>";
然后使用$_POST['image_url']
检索tag.php 中的URL。
请务必在将 URL 放入 SQL 查询之前对其进行验证。
【讨论】:
【参考方案3】:由于您正在为每个图像创建一个表单,因此提交按钮只会发布该提交表单中的输入字段。
您需要将图像数据添加为表单中的隐藏字段
输出:
foreach ($media->data as $data)
echo $pictureImage = "<img src=\"$data->images->thumbnail->url\">";
echo "<form action='tag.php' method='post'>";
echo "<input type='hidden' name='img_url' value='$data->images->thumbnail->url'">;
echo "<input type='submit' name='submit' value='Click Me'>";
echo "</form>";
然后处理帖子:
...
$hostname = "random";
$username = "random";
$dbname = "random";
$password = "random!";
$usertable = "random";
$pictureImage = file_get_contents($_POST['img_url']);
...
【讨论】:
以上是关于如何将图片插入到数据库中的主要内容,如果未能解决你的问题,请参考以下文章