[FIXED] Das Hochladen von PHP-Dateien funktioniert nicht auf dem Linux-Server

Ausgabe

Der Datei-Upload funktioniert mit xampp in Windows, funktioniert aber nicht, als ich ihn auf einen Centos-Produktionsserver verschoben habe. Es wirft den Fehler “ungültige Datei”. Dies ist der Code, den ich verwende:

<?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";
 }
 ?>

Kann mir da bitte jemand helfen……..

Lösung

untere Zeile ersetzen

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

mit der unteren Zeile

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

Es wird Ihr Problem lösen.


Beantwortet von –
Ripa Saha


Antwort geprüft von –
Pedro (FixError Volunteer)

0 Shares:
Leave a Reply

Your email address will not be published. Required fields are marked *

You May Also Like