簡體   English   中英

當我嘗試在php中的數據庫中插入空圖像時為什么會出錯?

[英]Why gives error when I try insert an empty image in database in php?

我正在嘗試在網頁上創建一個小表格。 該表格包含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);
    } 
} 

更改

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

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

嘗試更換:

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

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

試試吧

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);
      }
     }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM