2017-04-19 2 views
0

Ich habe derzeit einen Albtraum mit einem Webserver, den ich habe. Ich habe fast jede Stack Overflow-Seite durchforstet, die ich finden kann und immer noch keinen Erfolg.Dateien, die größer als 1 MB sind, können nicht hochgeladen werden - PHP Webserver

Ich habe einen Webserver lokal ausgeführt, den ich zuerst diese Einstellungen testen würde, und alles funktioniert, aber immer wenn ich die gleichen Einstellungen auf meinen Hauptserver anwende, kein Glück.

Ich bin direkt zurück zu den Grundlagen gegangen, nur mit einer einfachen HTML-Seite und PHP-Seite, um die Anfrage zu verarbeiten und dies schlägt immer noch mit etwas über 1 MB.

als Referenz, das ist mein HTML-Skript:

<!DOCTYPE html> 
    <html> 
    <body> 

    <form action="test.php" method="post" enctype="multipart/form-data"> 
     Select image to upload: 
     <input type="file" name="fileToUpload" id="fileToUpload"> 
     <input type="submit" value="Upload Image" name="submit"> 
    </form> 

    </body> 
</html> 

Dies ist meine test.php Seite die Anforderung zu verarbeiten:

<?php 
$target_dir = ""; 
$target_file = $target_dir . basename($_FILES["fileToUpload"]["name"]); 
$uploadOk = 1; 
$imageFileType = pathinfo($target_file,PATHINFO_EXTENSION); 

// Check if image file is a actual image or fake image 
if(isset($_POST["submit"])) { 
    $check = getimagesize($_FILES["fileToUpload"]["tmp_name"]); 
    if($check !== false) { 
     echo "File is an image - " . $check["mime"] . "."; 
     $uploadOk = 1; 
    } else { 
     echo "File is not an image."; 
     $uploadOk = 0; 
    } 
} 
// Check if file already exists 
if (file_exists($target_file)) { 
    echo "Sorry, file already exists."; 
    $uploadOk = 0; 
} 
// Check file size 
if ($_FILES["fileToUpload"]["size"] > 8000000) { //8mb 
    echo "Sorry, your file is too large."; 
    $uploadOk = 0; 
} 
// Allow certain file formats 
if($imageFileType != "jpg" && $imageFileType != "png" && $imageFileType != "jpeg" 
&& $imageFileType != "gif") { 
    echo "Sorry, only JPG, JPEG, PNG & GIF files are allowed."; 
    $uploadOk = 0; 
} 
// Check if $uploadOk is set to 0 by an error 
if ($uploadOk == 0) { 
    echo "Sorry, your file was not uploaded."; 
// if everything is ok, try to upload file 
} else { 
    if (move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_file)) { 
     echo "The file ". basename($_FILES["fileToUpload"]["name"]). " has been uploaded."; 
    } else { 
     echo "Sorry, there was an error uploading your file."; 
    } 
} 
?> 

Dies ist nur die grundlegende Upload-Skript php Bild von w3 Schulen - darauf hat mich dieses Problem reduziert!

Was habe ich versucht:

  • Bearbeiten der Datei php.ini dann Apache neu zu starten
  • die HTML-Formular ändern, so dass es enctype = "multipart/form-data" im Formularkopf
  • enthält
  • Hinzufügen .htaccess an die Wurzel www/html Ordner, in dem die Dateien
  • das Bit des Upload-Skript zu ändern, die die maximal zulässige Größe Bild angibt:

Der Fehler Ich erhalte ist:

Warning: getimagesize(): Filename cannot be empty in /var/www/html/test.php on line 8 
File is not an image.Sorry, your file was not uploaded. 

mir jemand helfen? Ich habe auch versucht, mod_security zu deaktivieren, aber ich konnte das nicht einmal auf meinem Apache2-Server finden.

Vielen Dank.

+0

Also ist der Fehler, den Sie über 'getimagesize()' auf dem lokalen Server und Haupt erhalten? Sie erhalten _that_, indem Sie Dateien hochladen, die größer als 1 MB sind? –

+0

Vielleicht überschreiten Sie Ihr Standardzeitlimit, da Ihre Dateien über 1 MB groß sind. Versuchen Sie, das Zeitlimit mit 'set_time_limit (0) auf unbegrenzt zu setzen;' –

+0

Nein, ich habe nur den Fehler auf dem Hauptserver. Alles funktioniert super, wenn ich es auf meinem Webserver auf meinem Laptop ausprobiere, nur wenn ich es auf den Hauptserver schiebe. Ich schaue auf set_time_limit (0) - Ich habe das zum PHP-Skript hinzugefügt, aber keinen Erfolg. –

Antwort

0

können Sie die Grenze Upload ändern, indem Sie zwei Möglichkeiten, wie unten

i) Ändern Sie den Wert des upload_max_filesize in php.ini

ii) Mit ini_set ("upload_max_filesize", "30M");

+0

Wo könnten Sie ini_set setzen ("upload_max_filesize", "30M"); ? –

+0

Oh, vergiss es, fügte das auch in die PHP-Datei hinzu, aber ohne Erfolg - immer noch auf der Suche nach einer Lösung. –

Verwandte Themen