php无法存储数据库,不能使用php上传和存储图像到数据库

我尝试使用php构建一个上传图像系统 . 经过测试,系统回显出“图像上传”,但它没有显示在数据库中 . 这里是我的代码

upload.php的

//connect database

include('config.php');

//file properties

if(isset($_FILES['image'])){

$file = $_FILES['image']['tmp_name'];

}

if(!isset($file)){

echo "Please select an image";

}

else{

$image = addslashes(file_get_contents($_FILES['image']['tmp_name']));

$image_name =addslashes($_FILES['image']['name']);

$image_size =getimagesize($_FILES['image']['tmp_name']);

if ($image_size == FALSE) {

echo "This is not an image";

}

else{

$insert = "INSERT INTO image(name,picture) VALUES ('$image_name','$image')";

if(!$insert){

echo "Problem uploading";

}

else {

$lastid =mysqli_insert_id($con);

echo "Image Uploaded

get.php?id=%24lastid";

}

}

}

?>

get.php

include ('config.php');

$id = addslashes($_REQUEST['id']);

$image = mysqli_query($con ,"SELECT * FROM image WHERE id=$id");

$image = mysqli_fetch_assoc($image);

$image = $image['picture'];

header("Content-type :image/jpeg");

?>

然后单击提交按钮而不选择任何文件,这两行警告显示出来

警告:file_get_contents():在upload.php第14行中,文件名不能为空 . 行14是$ image = addslashes(file_get_contents($ _ FILES ['image'] ['tmp_name']));警告:getimagesize():在upload.php第16行中,文件名不能为空 . 而第16行是$ image = addslashes(file_get_contents($ _ FILES ['image'] ['tmp_name']));

对此有何想法?

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
首先,我们需要创建一个包含上传表单的HTML页面。在表单中,我们需要一个文件输入字段和一个提交按钮。 ```html <!DOCTYPE html> <html> <head> <title>Upload Avatar</title> </head> <body> <form action="upload.php" method="post" enctype="multipart/form-data"> <input type="file" name="avatar" accept="image/*"> <input type="submit" value="Upload"> </form> </body> </html> ``` 在这个表单中,我们指定了上传文件的URL为`upload.php`,并且指定了文件类型为图片。 接下来,我们需要创建一个PHP脚本来处理上传的文件并将其保存数据库中。在这个脚本中,我们需要执行以下步骤: 1. 检查上传文件是否存在并且没有错误。 2. 生成一个唯一的文件名,以防止文件名冲突。 3. 将文件移到服务器上的一个指定目录中。 4. 将文件名保存数据库中。 ```php <?php //连接数据库 $dbhost = 'localhost'; $dbuser = 'root'; $dbpass = 'password'; $dbname = 'mydb'; $conn = mysqli_connect($dbhost, $dbuser, $dbpass, $dbname); //检查上传文件是否存在并且没有错误 if(isset($_FILES['avatar']) && $_FILES['avatar']['error'] == 0) { $file = $_FILES['avatar']; //生成唯一的文件名 $filename = uniqid() . '.' . pathinfo($file['name'], PATHINFO_EXTENSION); //将文件移动到服务器上的指定目录中 move_uploaded_file($file['tmp_name'], 'uploads/' . $filename); //将文件名保存数据库中 $sql = "INSERT INTO avatars (filename) VALUES ('$filename')"; mysqli_query($conn, $sql); } ?> ``` 在这个脚本中,我们首先连接到数据库。然后,我们检查上传文件是否存在并且没有错误。如果文件存在并且没有错误,我们生成一个唯一的文件名,并将文件移到服务器上的指定目录中。最后,我们将文件名保存数据库中。 注意,这个脚本假定我们已经创建了一个名为`avatars`的表,其中包含一个名为`filename`的列,用于保存文件名。 完成以上步骤后,我们就可以上传头像并将其保存数据库中了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值