我正在开发一个新闻网站,它的数据库有4列称为ID,标题,职位和views.And我想为我的每篇文章有一个图像我该如何编辑我的数据库?如何将图像文件上传到现有数据库?
我可以像上传其他信息一样从表单上传照片。我的意思是我会用INSERT INTO
。我希望我能解释一下。
感谢您的帮助。
我正在开发一个新闻网站,它的数据库有4列称为ID,标题,职位和views.And我想为我的每篇文章有一个图像我该如何编辑我的数据库?如何将图像文件上传到现有数据库?
我可以像上传其他信息一样从表单上传照片。我的意思是我会用INSERT INTO
。我希望我能解释一下。
感谢您的帮助。
是的,您可以像其他信息一样将图像插入数据库。为此,您必须为数据库属性使用blob数据类型。之后,你的图像将被保存到数据库中。 如果您需要更新您的现有表,那么您必须更改您的数据库表。为此,您可以像下面给出的那样进行查询。
alter table table_name add `image` mediumblob NOT NULL
请通过此链接,你会发现它很有帮助。 http://www.anyexample.com/programming/php/php_mysql_example__image_gallery_(blob_storage).xml
你能解释一下如何在现有的数据库上做到这一点吗 –
@BurakDemirelli我已经更新了我的答案。请检查它并让我为你工作? – Shujaat
您应该添加一个新列,名为图片。有几种方法可以做到这一点。
要上传图片,您应该添加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);
}
您可以使用相同的代码,你没有,但你只需要添加文件上传处理。
是的,你可以保存图片到你的数据库中blob
格式:
INSERT INTO news(id,image) VALUES(1,LOAD_FILE('path/to/image'));
或者你可以存储唯一的价值为news
表,image_name
列。该值与实际图像名称关联,例如123456.jpg
。然后,您可以根据以前存储的image_name
加载应用程序中的图像。
在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')");
}
最好的方法是将文件名存储在数据库中,并保存实际的文件在你的文件系统。然后,您可以引用数据库中的文件名并在您的文件系统中找到并检索它。可以将图像保存到数据库中,但实际上并不推荐。要做到这一点,你可以使用MySQL的'blob'类型。有关更多信息,请参阅此页面:https://dev.mysql.com/doc/refman/5.7/en/blob。html –
这里有点大了,为什么不先回答这个问题:你是否只需要在上传文件后将图像路径存储在数据库中,或者你是否想要对图像进行编码以将它们直接存储在基础? – Kaddath
我不明白我猜。你推荐我使用我的托管,数据库或其他东西? –