php上传图片到数据库
时间: 2023-08-17 17:25:08 浏览: 49
上传图片到数据库一般不是一个好的实践,更好的方法是上传到服务器上的文件系统中,然后将图片的路径保存在数据库中。以下是一个 PHP 上传图片到服务器文件系统和保存路径到数据库的示例代码:
HTML 表单:
```html
<form action="upload.php" method="post" enctype="multipart/form-data">
<input type="file" name="image">
<input type="submit" value="Upload">
</form>
```
PHP 代码:
```php
<?php
// 连接数据库
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDB";
$conn = mysqli_connect($servername, $username, $password, $dbname);
if (!$conn) {
die("Connection failed: " . mysqli_connect_error());
}
// 处理文件上传
$target_dir = "uploads/";
$target_file = $target_dir . basename($_FILES["image"]["name"]);
$imageFileType = strtolower(pathinfo($target_file, PATHINFO_EXTENSION));
$uploadOk = 1;
if (isset($_POST["submit"])) {
$check = getimagesize($_FILES["image"]["tmp_name"]);
if ($check !== false) {
echo "File is an image - " . $check["mime"] . ".";
$uploadOk = 1;
} else {
echo "File is not an image.";
$uploadOk = 0;
}
}
if ($uploadOk == 0) {
echo "Sorry, your file was not uploaded.";
} else {
if (move_uploaded_file($_FILES["image"]["tmp_name"], $target_file)) {
echo "The file " . htmlspecialchars(basename($_FILES["image"]["name"])) . " has been uploaded.";
// 保存图片路径到数据库
$sql = "INSERT INTO images (path) VALUES ('$target_file')";
if (mysqli_query($conn, $sql)) {
echo "Record added successfully.";
} else {
echo "Error adding record: " . mysqli_error($conn);
}
} else {
echo "Sorry, there was an error uploading your file.";
}
}
mysqli_close($conn);
?>
```
在此示例中,假设数据库中已经存在名为 `images` 的表,其中包含一个名为 `path` 的列用于保存图片的路径。请注意,此示例仅用于演示目的,实际应用中需要做更多的验证和错误处理,例如检查文件大小、文件类型、文件名等。