2017-03-06 33 views
0

我正在开发一个新闻网站,它的数据库有4列称为ID,标题,职位和views.And我想为我的每篇文章有一个图像我该如何编辑我的数据库?如何将图像文件上传到现有数据库?

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

感谢您的帮助。

+0

最好的方法是将文件名存储在数据库中,并保存实际的文件在你的文件系统。然后,您可以引用数据库中的文件名并在您的文件系统中找到并检索它。可以将图像保存到数据库中,但实际上并不推荐。要做到这一点,你可以使用MySQL的'blob'类型。有关更多信息,请参阅此页面:https://dev.mysql.com/doc/refman/5.7/en/blob。html –

+2

这里有点大了,为什么不先回答这个问题:你是否只需要在上传文件后将图像路径存储在数据库中,或者你是否想要对图像进行编码以将它们直接存储在基础? – Kaddath

+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

+0

你能解释一下如何在现有的数据库上做到这一点吗 –

+0

@BurakDemirelli我已经更新了我的答案。请检查它并让我为你工作? – Shujaat

0

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

要上传图片,您应该添加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); 
} 

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

0

是的,你可以保存图片到你的数据库中blob格式:

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

或者你可以存储唯一的价值为news表,image_name列。该值与实际图像名称关联,例如123456.jpg。然后,您可以根据以前存储的image_name加载应用程序中的图像。

0

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使用的数据类型VARCHAR与大小250

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')"); 


}