你好我有一个表格有很多输入(姓名,姓氏,图片,年龄..),我想把所有这些信息提交到我的数据库,我知道如何做一个简单的输入,但与图片我有一些问题 有谁可以帮助我吗 我的html文件是
<form action="insertion.php" method="post" >
<table >
<tr>
<td><strong>Titre</strong></td>
<td><input name="titre" type="text" value="" /></td>
</tr>
<tr>
<td><strong>Annee</strong></td>
<td><input name="annee" type="number" value="" /></td>
</tr>
<tr>
<td><strong>Genre musical</strong></td>
<td><input name="Gmusical" type="texte" value="" /></td>
</tr>
<tr>
<td>
<strong>Picture</strong>
</td>
<td>
<input type="file" name="img"/>
</td>
</tr>
</table>
<input type="submit" value="Submit " />
</form>
我的文件insertion.php要提交到数据库
<?php
include("connexion.php");
$titre=$_POST['titre'];
$annee=$_POST['annee'];
$Gmusical=$_POST['Gmusical'];
$picture=$_POST['img'];
$req="INSERT INTO `cd`
(`titre`, `Annee`, `genremusical`, `Image`)
VALUES
('$titre','$annee','$Gmusical','$picture');";
if (mysql_query($req))
{
echo "ok";
}
else
echo 'ko';
}
答案 0 :(得分:3)
通常,您不希望将实际的BLOB(二进制大对象)数据类型存储在数据库中。您存储位于Web服务器某处的图像的路径。
因此,在“图像”列中,您将存储路径“images / photo1103.jpg”。
要显示照片:
echo "<img src=". $image_query_fetch['Image'] .'" alt=\"\" />";
答案 1 :(得分:2)
列类型可以是varchar 我还建议使用mysqli而不是mysql
以下代码可以帮助您:
编辑代码 将此尝试作为一个文件,如果您还没有尝试过,可以尝试使用echo $picture_name;
进行调试。
(可选强>
还有一件事可以帮助ob_start();
将此文件置于<?php
标记之后的文件顶部,而不是在页面底部以ob_flush();
与?>
关联标签让你得到类似:)
<?php
include('connexion.php');
function outout_errors($error) {
echo '<ul><li>',$error.'</li></ul>';
}
if($_POST) {
$titre = mysql_real_escape_string(strip_tags($_POST['titre']));
$annee = mysql_real_escape_string(strip_tags($_POST['annee']));
$Gmusical = mysql_real_escape_string(strip_tags($_POST['Gmusical']));
$picture_tmp = $_FILES['img']['tmp_name'];
$picture_name = $_FILES['img']['name'];
$picture_type = $_FILES['img']['type'];
$allowed_type = array('image/png', 'image/gif', 'image/jpg', 'image/jpeg');
if(in_array($picture_type, $allowed_type)) {
$path = 'images/'.$picture_name; //change this to your liking
} else {
$error[] = 'File type not allowed';
}
if(!is_numeric($annee)) {
$error[] = $annee.' is not a number';
}
if(!empty($error)) {
echo '<font color="red">'.output_errors($error).'</font>';
} else if(empty($error)) {
$req="INSERT INTO `cd` (`titre`, `Annee`, `genremusical`, `Image`) VALUES ('$titre', '$annee', '$Gmusical', '$path')";
move_uploaded_file($picture_tmp, $path);
if (mysql_query($req)) {
echo 'ok';
} else {
echo 'ko';
}
}
}
?>
<form action="" method="post" enctype="multipart/form-data">
<table>
<tr>
<td><strong>Titre</strong></td>
<td><input name="titre" type="text"></td>
</tr> <tr>
<td><strong>Annee</strong></td>
<td><input name="annee" type="text"></td>
</tr><tr>
<td><strong>Genre musical</strong></td>
<td><input name="Gmusical" type="text"></td>
</tr><tr>
<td><strong>Picture</strong></td>
<td><input type="file" name="img"></td>
</tr>
<tr>
<input type="submit">
</tr>
</table>
</form>
答案 2 :(得分:1)
您必须将数据库中“image”列的列类型设置为BLOB或LONGBLOB(或others),例如:
CREATE TABLE cd (
...
Image LONGBLOB,
);
然后只需像你一样插入数据。
通常更好的解决方法是将文件存储在文件系统中,并仅保存数据库中文件的路径。如果您想这样做,可能需要查看this SO question。 (另见this one。)
(正如用户 Fred -ii - 在评论中指出,您还必须设置表单的 enctype -Tag到“multipart / form-data”。)
答案 3 :(得分:-1)
<?php include("config.php");?>
<?php
error_reporting("0");
if(isset($_POST['submit'])) {
// Get image name
$image = $_FILES['image']['name'];
// Get text
$image_name= $_POST['image_name'];
// Image file directory
$target = "images/".basename($image);
// Now insert query
$sql = "INSERT INTO addimage(image, image_name) values ('$image','$image_name')";
// Execute query
mysqli_query($dbcon,$sql);
if(move_uploaded_file($_FILES['image']['tmp_name'],$target))
{
$img = "image uploading successfully";
} else {
$img = "faild image uploading";
}
}
?>
<!DOCTYPE html>
<html>
<head>
<title>Upload image with text Field</title>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
<script type="text/javascript" src="script.js"></script>
</head>
<body>
<div class="container">
<div class="col-sm-10">
<h1>Image uploading with text field</h1>
<div class="card-box">
<div class="row">
<div class="col-md-6">
<div class="p-20">
<form method="post" enctype="multipart/form-data">
<h5 class="alert-success">
<?php if(isset($img)){ echo $msg;}?>
</h5>
<div class="form-group">
<label class="control-label">Image Name</label>
<input type="text" class="form-control" data-size="sm" name="image_name">
</div>
<div class="form-group">
<label class="control-label">Small file style</label>
<input type="file" class="filestyle" data-size="sm" name="image">
</div>
<div class="form-group">
<input type="submit" class="btn btn-success" value="Save" name="submit">
</div>
</form>
</div>
</div>
</div>
</div>
</div>
</div>
</body>
</html>