简体   繁体   English

使用PHP将图像上传到mysql数据库

[英]Image Uploading to mysql database using PHP

I'm trying to upload image to mysql table. 我正在尝试将图像上传到mysql表。 When image selected it's working fine. 选择图片后,效果很好。 But without selecting image it's display error message. 但是,如果不选择图像,则会显示错误消息。 How can i fix it? 我该如何解决?

Warning: file_get_contents(): Filename cannot be empty in C:\\wamp\\www\\firstdialnew\\firstdial\\adhandler.php on line 23 警告:file_get_contents():在23行的C:\\ wamp \\ www \\ firstdialnew \\ firstdial \\ adhandler.php中文件名不能为空

$stype=$_POST['stype'];
$image = addslashes(file_get_contents($_FILES['image']['tmp_name']));
$image_name = addslashes($_FILES['image']['name']);

if($stype="")
{
echo "Please fill all the details";
}else{
$sql=mysql_query("INSERT INTO ads
                            (sid,stype,image,image_name)
                            VALUES(NULL,'$stype','$image','$image_name')");
echo "Details Successfully send";
}

you need to check/validate that image is upload or not try something like that 您需要检查/验证该图像是否已上传,或者不要尝试类似的操作

if (!empty($_FILES['image']['name'])) {
   $image = addslashes(file_get_contents($_FILES['image']['tmp_name']));
   $image_name = addslashes($_FILES['image']['name']);
}else{
   $image = '';
   $image_name = '';
}

You are not checking for $_FILES try this 您没有检查$_FILES尝试此操作

$stype=$_POST['stype'];
if(isset($_FILES['image']) ) {
    $image = addslashes(file_get_contents($_FILES['image']['tmp_name']));
    $image_name = addslashes($_FILES['image']['name']);
}else{
    $image = '';
    $image_name = '';
}

I will suggest you to upload file in a folder and store the file name in mysql table. 我建议您将文件上传到文件夹中,并将文件名存储在mysql表中。

Here is how you can do that 这是你可以做到的

$file_path = "uploads/";

if(isset($_FILES['image']) ) {
   $file_name  = basename( $_FILES['uploaded_file']['name']);
   $file_path = $file_path . $file_name;

   //You should validate the image before upload
   move_uploaded_file($_FILES['uploaded_file']['tmp_name'], $file_path);
 }else{
    $image = '';
    $image_name = '';
}

//now store file name in db
$sql=mysql_query("INSERT INTO ads
                        (sid,stype,image,image_name)
                        VALUES(NULL,'$stype','$file_name','$image_name')");

Follow my experience, you should save image into folder (ex : public/upload/images/image_name.png) AND save image path into database. 按照我的经验,您应该将图像保存到文件夹(例如:public / upload / images / image_name.png)中,并将图像路径保存到数据库中。 That is simple and database's size is not large 很简单,数据库的大小也不大

Did you add : 您是否添加了:

    <form method="POST" enctype="multipart/form-data">

Into your form (enctype="multipart/form-data") 放入您的表单(enctype =“ multipart / form-data”)

try this : 尝试这个 :

 $stype=$_POST['stype'];
     $image_name ='';
     $image='';
     if(!empty($_FILES['image'])) {
     $image = addslashes(file_get_contents($_FILES['image']['tmp_name']));
     $image_name = addslashes($_FILES['image']['name']);
      } 
      if($stype="")
      {
      echo "Please fill all the details";
      }else{
       $sql=mysql_query("INSERT INTO ads
                        (sid,stype,image,image_name)
                        VALUES(NULL,'$stype','$image','$image_name')");
         echo "Details Successfully send";
       }

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM