您好我想使用PHP脚本和形式html将图像保存到mysql但是在这段代码中我看到图像没有发送到php你可以帮助我,我是在php的初学者。
Form.html
<form action="upload_image.php" method="post" enctype="multipart/form-data">
<p>
<input type="file" name="photo" />
<input type="submit" value="Submit" name="submit"/>
</p>
</form>
<b>
<a href="upd.php">Afficher la premiere image de la base de donnes </a>
</b>
&#13;
php脚本:
<?php
echo ini_get( 'file_uploads' );
if($_SERVER['REQUEST_METHOD']=='POST'){
$con = mysqli_connect("localhost","root","","othmane");
if ($con->connect_errno) {
printf("Connect failed: %s\n", $mysqli->connect_error);
exit();
}
$img = $_POST['photo'];
if($img!=null){
$sql = "INSERT INTO images (image) VALUES (?)";
$stmt = mysqli_prepare($con,$sql);
mysqli_stmt_bind_param($stmt,"s",$img);
mysqli_stmt_execute($stmt);
$check = mysqli_stmt_affected_rows($stmt);
if($check == 1){
echo "Image Uploaded Successfully";
}else{
echo "Error Uploading Image";
}
}else{
echo "image not found";
}
mysqli_close($con);
}else{
echo "Error";
}
?>
&#13;
为什么图像没有发送到脚本?我总是在php中找不到图像。
答案 0 :(得分:2)
POST
方法访问文件元素的正确方法不是$img = $_POST['photo']
。您应该使用$_FILE
var,例如$img = $_FILE['photo']['name']
来获取文件名。
您可以从$_FILE
var:
$_FILES['photo']['name']
客户端计算机上文件的原始名称。
$_FILES['photo']['type']
文件的mime类型,如果浏览器提供了此信息。一个例子是&#34; image / gif&#34;。然而,在PHP方面没有检查这种mime类型,因此不要将其值视为理所当然。
$_FILES['photo']['size']
上载文件的大小(以字节为单位)。
$_FILES['photo']['tmp_name']
上载文件存储在服务器上的文件的临时文件名。
$_FILES['photo']['error']
与此文件上载相关联的错误代码。
请看这里:http://php.net/manual/en/features.file-upload.post-method.php
注意:如果您需要将图像存储在数据库中,则需要将文件转换为二进制数据并以BLOB
类型存储在数据库中。
看这里:http://dev.mysql.com/doc/refman/5.0/en/blob.html
另外,一种好方法是将文件存储在主机上的文件夹中,并将路径保存在数据库中。