Php 如何在用户提交图像时向mysql数据库添加图像
我想使用表单将多个图像添加到mysql数据库中。每当用户提交该表单时,它就会捕获所有数据并将其存储到mysql数据库中。这是正确的方法,但我需要 我的数据库表如下所示Php 如何在用户提交图像时向mysql数据库添加图像,php,javascript,mysql,Php,Javascript,Mysql,我想使用表单将多个图像添加到mysql数据库中。每当用户提交该表单时,它就会捕获所有数据并将其存储到mysql数据库中。这是正确的方法,但我需要 我的数据库表如下所示 CREATE TABLE `Owner_detail` ( `id` int(10) NOT NULL auto_increment, `fullname` varchar(30) NOT NULL, `List1` varchar(20) NOT NULL, `List2` varchar(20) NOT NUL
CREATE TABLE `Owner_detail` (
`id` int(10) NOT NULL auto_increment,
`fullname` varchar(30) NOT NULL,
`List1` varchar(20) NOT NULL,
`List2` varchar(20) NOT NULL,
`List3` varchar(20) NOT NULL,
`area` varchar(30) NOT NULL,
`ownermobile` varchar(20) NOT NULL,
`email` varchar(20) NOT NULL,
`image_one` blob NOT NULL,
`image_two` blob NOT NULL,
`image_three` blob NOT NULL,
`otherdetail` varchar(300) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=49 ;
<table width="60%"><form action="process.php" method="post" enctype="multipart/form-data" name="tripleplay" onsubmit="MM_validateForm('fullname','','R','area','','R','ownermobile','','RisNum','email','','RisEmail','otherdetail','','R');return document.MM_returnValue">
<tr>
<td width="44%">Full Name : </td>
<td width="56%"><input size="25" type="text" name="fullname" id="fullname" /></td>
</tr>
<tr>
<td valign="top">Rental Type:</td>
<td>
<select name='List1' id="List1" onchange="fillSelect(this.value,this.form['List2'])">
<option selected>Make a Selection</option>
</select>
<br /><br />
<select name='List2' id="List2" onchange="fillSelect(this.value,this.form['List3'])">
<option selected>Make a Selection</option>
</select><br /><br />
<select name='List3' id="List3" onchange="getValue(this.value, this.form['List2'].value,
this.form['List1'].value)">
<option selected>Make a Selection</option>
</select>
</td>
</tr>
<tr>
<td>Area : </td>
<td><input size="25" type="text" name="area" id="area" />
sq.ft.</td>
</tr>
<tr>
<td>Owner Mobile / Landline</td>
<td><input size="25" type="text" name="ownermobile" id="ownermobile" /></td>
</tr>
<tr>
<td><p>E-mail</p></td>
<td><input size="25" type="text" name="email" id="email" /></td>
</tr>
<tr>
<td valign="top">Pictures of Property</td>
<td>
<input type="file" name="image_one" id="image_one" />
<input type="file" name="image_two" id="image_two" />
<input type="file" name="image_three" id="image_three" />
</td>
</tr>
<tr>
<td valign="top">Other details you would like to share about your property:</td>
<td><textarea size="25" name="otherdetail" id="otherdetail" cols="45" rows="5"> </textarea></td>
</tr>
<tr>
<td> </td>
<td><input type="submit" name="submit" id="submit" value="Submit" /></td>
</tr>
</form>
</table>
我的html表单如下所示
CREATE TABLE `Owner_detail` (
`id` int(10) NOT NULL auto_increment,
`fullname` varchar(30) NOT NULL,
`List1` varchar(20) NOT NULL,
`List2` varchar(20) NOT NULL,
`List3` varchar(20) NOT NULL,
`area` varchar(30) NOT NULL,
`ownermobile` varchar(20) NOT NULL,
`email` varchar(20) NOT NULL,
`image_one` blob NOT NULL,
`image_two` blob NOT NULL,
`image_three` blob NOT NULL,
`otherdetail` varchar(300) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=49 ;
<table width="60%"><form action="process.php" method="post" enctype="multipart/form-data" name="tripleplay" onsubmit="MM_validateForm('fullname','','R','area','','R','ownermobile','','RisNum','email','','RisEmail','otherdetail','','R');return document.MM_returnValue">
<tr>
<td width="44%">Full Name : </td>
<td width="56%"><input size="25" type="text" name="fullname" id="fullname" /></td>
</tr>
<tr>
<td valign="top">Rental Type:</td>
<td>
<select name='List1' id="List1" onchange="fillSelect(this.value,this.form['List2'])">
<option selected>Make a Selection</option>
</select>
<br /><br />
<select name='List2' id="List2" onchange="fillSelect(this.value,this.form['List3'])">
<option selected>Make a Selection</option>
</select><br /><br />
<select name='List3' id="List3" onchange="getValue(this.value, this.form['List2'].value,
this.form['List1'].value)">
<option selected>Make a Selection</option>
</select>
</td>
</tr>
<tr>
<td>Area : </td>
<td><input size="25" type="text" name="area" id="area" />
sq.ft.</td>
</tr>
<tr>
<td>Owner Mobile / Landline</td>
<td><input size="25" type="text" name="ownermobile" id="ownermobile" /></td>
</tr>
<tr>
<td><p>E-mail</p></td>
<td><input size="25" type="text" name="email" id="email" /></td>
</tr>
<tr>
<td valign="top">Pictures of Property</td>
<td>
<input type="file" name="image_one" id="image_one" />
<input type="file" name="image_two" id="image_two" />
<input type="file" name="image_three" id="image_three" />
</td>
</tr>
<tr>
<td valign="top">Other details you would like to share about your property:</td>
<td><textarea size="25" name="otherdetail" id="otherdetail" cols="45" rows="5"> </textarea></td>
</tr>
<tr>
<td> </td>
<td><input type="submit" name="submit" id="submit" value="Submit" /></td>
</tr>
</form>
</table>
我在php中的处理表单如下所示
<?
if( $_POST )
{
$con = mysql_connect("","","");
if (!$con)
{
die('Could not connect: ' . mysql_error());
}
mysql_select_db("vkrental", $con);
$users_fullname = $_POST['fullname'];
$users_area = $_POST['area'];
$users_List1 = $_POST['List1'];
$users_List2 = $_POST['List2'];
$users_List3 = $_POST['List3'];
$users_ownermobile = $_POST['ownermobile'];
$users_email = $_POST['email'];
$users_image_one = $_POST['image_one'];
$users_image_two = $_POST['image_two'];
$users_image_three = $_POST['image_three'];
$users_otherdetail = $_POST['otherdetail'];
$users_fullname = htmlspecialchars($users_fullname);
$users_area = htmlspecialchars($users_area);
$users_List1 = htmlspecialchars($users_List1);
$users_List2 = htmlspecialchars($users_List2);
$users_List3 = htmlspecialchars($users_List3);
$users_ownermobile = htmlspecialchars($users_ownermobile);
$users_email = htmlspecialchars($users_email);
$users_image_one = htmlspecialchars($users_image_one);
$users_image_two = htmlspecialchars($users_image_two);
$users_image_three = htmlspecialchars($users_image_three);
$users_otherdetail = htmlspecialchars($users_otherdetail);
$query = "
INSERT INTO `vkrental`.`Owner_detail` (
`fullname` ,
`area` ,
`List1` ,
`List2` ,
`List3` ,
`ownermobile` ,
`email` ,
`image_one` ,
`image_two` ,
`image_three` ,
`otherdetail`
)
VALUES ( '$users_fullname',
'$users_area', '$users_List1','$users_List2','$users_List3', '$users_ownermobile', '$users_email', '$users_image_one','$users_image_two','$users_image_three', '$users_otherdetail'
);";
mysql_query($query);
echo "<h2>Success.</h2>";
mysql_close($con);
}
?>
我的问题是,当我从mysql数据库中插入图像时,它会成功存储。
但是,当我从html表单执行此操作时,它并没有存储图像。它只存储数据文本
我不知道表单中的实际错误是什么。听起来好像没有错误 您不在数据库中存储实际图像,而只存储它们的名称或对图像的引用 e、 g.product_one.jpg 然后,当您想要显示它时,您可以执行以下操作
<img src=" <?php $echo \images\$users_image_one ?> ">
我想知道对二进制数据使用htmlspecialchars会做什么
$users_image_one = htmlspecialchars($users_image_one);
$users_image_two = htmlspecialchars($users_image_two);
[编辑:]
htmlspecialchars用于保留文本数据的特殊字符。然而,如果你把它用于二进制数据,它会把一切都搞糟
自己解决问题:
你可以先只上传图片来找出问题所在
还可以查看此链接:这不是文件上载的工作方式。请看,我的建议是将图像上载到特定文件夹中,并将其URL作为varchar存储在数据库中,而不是直接作为blob数据类型。@Kevin添加一些代码并发送回复如何可能TMLSSpecialChars不是转义数据以便将其存储在数据库中的正确方法。还要注意的是,所有mysql_uu函数都已弃用。他还需要做更多的事情。他不是在处理上传的文件all@user2481198对不起,我弄错了。编辑了我的答案。@KevinPaladin$users\u image\u one=htmlspecialchars$users\u image\u one$users\u image\u two=htmlspecialchars$users\u image\u two;如果我用这段代码执行相同的过程,它正在运行。如果我删除此代码,它也会运行。但是图像并不是双向的。@KevinPaladin我认为问题在于我使用的表单action=process.php,但其他一些则表示action=那么我现在起诉的是什么?@user2481198根据Pekka的建议,我建议您先看看这个链接: