Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/291.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何将图像文件上载到现有数据库?_Php_Mysql_Html - Fatal编程技术网

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

Php 如何将图像文件上载到现有数据库?,php,mysql,html,Php,Mysql,Html,我正在开发一个新闻网站,它的数据库有4个栏目,分别是id、标题、帖子和视图。我想为我的每篇文章都有一个图片。我如何编辑我的数据库 我可以像上传其他信息一样上传表单中的照片吗?我的意思是我会使用插入到。我希望我能解释一下 谢谢您的帮助。是的,您可以像其他信息一样将图像插入数据库。为此,必须为数据库属性使用blob数据类型。之后,图像将保存到数据库中。 如果需要更新现有表,则必须更改数据库表。为此,您可以进行如下查询 alter table table_name add `image` medium

我正在开发一个新闻网站,它的数据库有4个栏目,分别是id、标题、帖子和视图。我想为我的每篇文章都有一个图片。我如何编辑我的数据库

我可以像上传其他信息一样上传表单中的照片吗?我的意思是我会使用
插入到
。我希望我能解释一下


谢谢您的帮助。

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

alter table table_name add `image` mediumblob NOT NULL
请浏览这个链接,你会发现它非常有用。

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

要上载图片,应将enctype=multipart/form数据添加到表单中。然后,您可以使用$\u文件来处理文件上载。是的,对于$\u POST值,您可以使用与$\u POST相同的方法,但是对于图像,您需要使用$\u文件

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

HTML:


当然,别忘了提交。但请确保在此表单中输入type=“file”。


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

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

或者,您可以将唯一值存储到
news
表的
image\u name
列中。此值与真实图像名称对应,例如
123456.jpg
。然后,您可以在应用程序中根据先前的存储
image\u name

数据库中使用大小为
250的数据类型
VARCHAR
加载图像

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


}
if(isset($\u POST['sub\u pic'])){
$image_dir='./image/'.//要保存图像的目录
$imagename=$_文件['image']['name'];
$imagetempname=$_文件['image']['tmp_名称'];
$imagetype=$_文件['image']['type'];
$imagesize=$_文件['image']['size'];
$imagepath=$image\U dir.$imagename;//存储用于访问的图像路径
$imageresult=move_uploaded_文件($imagetempname,$imagepath);//也可以合并访问
//如果失败,告诉用户一些事情
如果(!$imageresult)
{
echo“警告('上传横幅时出错!!…请重试”);
退出();
}
如果(!get_magic_quotes_gpc())
{
$imagename=addslashes($imagename);
$imagepath=addslashes($imagepath);
}
//要插入到数据库中的查询
$query=mysqli_query(“插入到表(图像)值(“$imagepath”)”);
}

最好的方法是将文件名存储在数据库中,并将实际文件保存在文件系统中。然后,您可以在数据库中引用文件名,并在文件系统中找到它并检索它。可以将图像保存到数据库中,但实际上不建议这样做。要做到这一点,您需要使用MySQL
blob
类型。查看此页面了解更多信息:这是一个很大的问题,为什么不先回答这个问题:上传文件后,您只需要将图像路径存储在数据库中,还是希望对图像本身进行编码以直接存储在数据库中?我想我不明白。您建议我使用我的主机吗,数据库或其他东西??你能解释一下如何在现有的database@BurakDemirelli我已经更新了我的答案。请检查一下,让我看看它对你有用吗?
<form action="php.php" method="post" enctype="multipart/form-data">
    <input type="file" name="image">
    <input type="submit" name="sub_pic">
</form>
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')");


}