Search code examples
phplinuxfilefile-uploadcentos

PHP File upload not working in linux server


The file upload works with xampp in windows but not working when I moved it to a production centos server. It throws "invalid file" error. This is the code I am using:

<?php
  $allowedExts = array("gif", "jpeg", "jpg", "png");
  $temp = explode(".", $_FILES["file"]["name"]);
  $extension = end($temp);
  if ((($_FILES["file"]["type"] == "image/gif")
  || ($_FILES["file"]["type"] == "image/jpeg")
  || ($_FILES["file"]["type"] == "image/jpg")
  || ($_FILES["file"]["type"] == "image/pjpeg")
  || ($_FILES["file"]["type"] == "image/x-png")
  || ($_FILES["file"]["type"] == "image/png"))
  && ($_FILES["file"]["size"] < 20000)
  && in_array($extension, $allowedExts))
  {
  if ($_FILES["file"]["error"] > 0)
  {
   echo "Return Code: " . $_FILES["file"]["error"] . "<br>";
  }
  else
  {
   echo "Upload: " . $_FILES["file"]["name"] . "<br>";
   echo "Type: " . $_FILES["file"]["type"] . "<br>";
   echo "Size: " . ($_FILES["file"]["size"] / 1024) . " kB<br>";
   echo "Temp file: " . $_FILES["file"]["tmp_name"] . "<br>";

if (file_exists("upload/" . $_FILES["file"]["name"]))
  {
  echo $_FILES["file"]["name"] . " already exists. ";
  }
else
  {
  move_uploaded_file($_FILES["file"]["tmp_name"],
  "upload/" . $_FILES["file"]["name"]);
  echo "Stored in: " . "upload/" . $_FILES["file"]["name"];
  }
  }
  }
else
 {
 echo "Invalid file";
 }
 ?>

Can someone please help me with this........


Solution

  • replace below line

    move_uploaded_file($_FILES["file"]["tmp_name"], "upload/" . $_FILES["file"]["name"]); 
    

    with the below line

    move_uploaded_file($_FILES["file"]["name"], "upload/" . $_FILES["file"]["name"]);
    

    It'll solve Your problem.