【问题标题】:Why gives error when I try insert an empty image in database in php?当我尝试在 php 中的数据库中插入空图像时,为什么会出错?
【发布时间】:2014-12-16 14:20:47
【问题描述】:

我正在尝试在网页上创建一个小表单。该表单有 3 个字段:姓名、年龄和图像。

如果所有字段均已填写,则一切正常。但是,如果没有输入图像给出此错误:

Warning: file_get_contents(): Filename cannot be empty in C:\xampp\htdocs\WEB\Request_1.php on line 98

第 98 行 - $image= addslashes(file_get_contents($_FILES["image"]["tmp_name"]));

Warning: getimagesize(): Filename cannot be empty in C:\xampp\htdocs\WEB\Request_1.php on line 100

第 100 行 - $image_size = getimagesize($_FILES['image']['tmp_name']);

我喜欢它记录在数据库中,即使文件字段为空。 如果文件为空并写入,我做了一个小的更改以写入数据库,但无论如何都会出现错误。

谁能帮帮我?

这是我的代码:

if (isset($_POST['submit'])) { 
    if (!get_magic_quotes_gpc()) {
        $name = addslashes($_POST[name]); 
        $age = addslashes($_POST[age]); 
    }
    if (!isset($_FILES["image"]["tmp_name"])) 
    {
        $insert2 = "INSERT INTO form (name, age) VALUES ('$name, '$age)";
        mysql_query($insert2);
    }
    else
    {
        $image=  addslashes(file_get_contents($_FILES["image"]["tmp_name"]));
        $image_name = addslashes($_FILES['image']['tmp_name']);
        $image_size = getimagesize($_FILES['image']['tmp_name']);
        $insert = "INSERT INTO form (name, age, image) VALUES (''$name, '$age, '$image')";
        mysql_query($insert);
    } 
} 

【问题讨论】:

    标签: php mysql


    【解决方案1】:

    尝试替换:

    if (!isset($_FILES["image"]["tmp_name"])) 
    

    与

    if ( @$_FILES["image"]["tmp_name"] == '') 
    

    【讨论】:

      【解决方案2】:

      改变

      if (!isset($_FILES["image"]["tmp_name"]))
      

      到

      if (!empty($_FILES['image']['name'])) {
      

      【讨论】:

        【解决方案3】:

        试试看

        if(isset($_POST['submit']))
        {
        $name = $_POST['name']; 
          $age = $_POST['age'];
               $errors= array();
              $file_name = $_FILES['image']['name'];
               $file_size =$_FILES['image']['size'];
               $file_tmp =$_FILES['image']['tmp_name'];
               $file_type=$_FILES['image']['type'];   
               $value = explode(".", $file_name);
               $file_ext = strtolower(array_pop($value));
        
              $expensions= array("png","jpg");   
              if(in_array($file_ext,$expensions)== false)
              {
               $errors="Extension not allowed, please choose a png or jpg file.";
              }
        
              if($file_size > 9097152)
              {
              $errors[]='File size must be excately 2 MB';
              }    
              if(empty($errors)==true)
              {
               move_uploaded_file($file_tmp,"upload/".$file_name);
         $insert2 = mysql_query("INSERT INTO form (name, age, image) VALUES (''$name, '$age', '$file_name')");
         echo "The file ".$file_name." has been uploaded.";
               //echo "Success";
              }
              else
              {
               print_r($errors);
              }
             }
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2017-09-25
          相关资源
          最近更新 更多