如何将图像文件上传到现有数据库?

时间:2017-03-06 15:18:22

标签: php html mysql html5

我正在开发一个新闻网站,它的数据库有4个列,分别是id,title,post和views。我希望每篇文章都有一个图像,如何为此编辑我的数据库?

我可以上传照片,就像上传其他信息一样。我的意思是我会使用INSERT INTO。我希望我能解释一下。

感谢您的帮助。

4 个答案:

答案 0 :(得分:0)

是的,您可以像其他信息一样将图像插入数据库。为此,您必须将blob数据类型用于数据库属性。之后,您的图像将保存到数据库中。 如果需要更新现有表,则必须更改数据库表。为此,您可以查询如下所示。

alter table table_name add `image` mediumblob NOT NULL

请仔细阅读此链接,您会发现它非常有帮助。 http://www.anyexample.com/programming/php/php_mysql_example__image_gallery_(blob_storage).xml

答案 1 :(得分:0)

您应该添加一个名为 image 的新列。有几种方法可以做到这一点。

要上传图片,您应该将enctype = multipart / form-data添加到表单中。然后,您可以使用$ _FILES来处理文件上传。是的,您可以使用与$ _POST相同的方式获取$ _POST值,但对于图像,您需要使用$ _FILES。

一个非常非常简单的解决方案:

HTML:

<form method="POST" enctype="multipart/form-data">
<input type="file" name="image">

不要忘记提交课程。但请确保在此表单中输入type =“file”。     

<?php
if(isset($_FILES['image'])) {
    $file_name = $_FILES['image']['name'];
    $file_tmp = $_FILES['image']['tmp_name'];
    move_uploaded_file($file_tmp, "images/" . $file_name);
}

您可以使用与您相同的代码,但只需添加文件上传处理。

答案 2 :(得分:0)

是的,您可以blob格式将图像存储到数据库中:

INSERT INTO news(id,image) VALUES(1,LOAD_FILE('path/to/image'));

或者您可以将唯一值存储到news表格image_name列中。此值与实际图像名称相对应,例如123456.jpg。然后,您可以根据以前的商店image_name加载图片。

答案 3 :(得分:0)

VARCHAR

中使用大小为250的数据类型database
<form action="php.php" method="post" enctype="multipart/form-data">
    <input type="file" name="image">
    <input type="submit" name="sub_pic">
</form>

<强> php.php

if (isset($_POST['sub_pic'])) {

$image_dir = './image/'; //directory you want your image to be saved
$imagename = $_FILES['image']['name'];
$imagetempname = $_FILES['image']['tmp_name'];
$imagetype = $_FILES['image']['type'];
$imagesize = $_FILES['image']['size'];

$imagepath = $image_dir . $imagename; //store image path for access

$imageresult = move_uploaded_file($imagetempname, $imagepath); //combine also for access

//if it fails tell the user something
if (!$imageresult)
{
    echo "<script>alert('Error uploading banner!!..Please try again')</script>";
    exit();
}
if (!get_magic_quotes_gpc())
{
    $imagename = addslashes($imagename);
    $imagepath = addslashes($imagepath);
}

//query to insert into database
$query = mysqli_query("INSERT INTO table (image) VALUES ('$imagepath')");


}