Problem Dateiupload PHP

eldrior

Aktives Mitglied
Hallo,

ich habe leider sehr wenig Ahnung von PHP und habe mir mit viel googlen folgendes kleines Script zusammengebaut/klaut, das eigentlich PDFs hochladen soll...

HTML:
<html>
    <body>
        <p><h1>PDF Uploader</h1></p>

        <form action="upload.php" method="post" enctype="multipart/form-data">
            PDF Datei ausw&auml;hlen:
            <input type="file" name="fileToUpload" id="fileToUpload">
            <input type="submit" value="Hochladen" name="submit">
        </form>
    </body>
</html>
PHP:
<?php
$target_dir = "uploads/";
$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"])) {
    if(($_FILES['fileToUpload']['type'] == 'application/pdf')) {
        echo "File is a pdf - " . $check["mime"] . ".";
        $uploadOk = 1;
    } else {
        echo "File is not a pdf.";
        $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"] > 500000) {
    echo "Sorry, your file is too large.";
    $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."; 
    }
}
?>
Das Auswählen der Datei im HTML Formular funktioniert wunderbar, ich bekomme allerdings folgende Ausgabe:
File is a pdf - .Sorry, there was an error uploading your file.

Das heißt für mich eigentlich, dass die Datei korrekt als PDF erkannt wurde, nicht zu groß ist, ich aber beim Kopieren irgendeinen Fehler gemacht habe. Kann mir da jemand weiterhelfen?

Vielen Dank im Voraus!
 

Thallius

Top Contributor
und du bist sicher das es einen Ordner uploads/ gibt ?

Mach doch mal ein

Code:
echo $_FILES["fileToUpload"]["tmp_name"]."<br>";
echo $target_file."<br>";

vor den move befehl.

Gruß

Claus
 

eldrior

Aktives Mitglied
Moin,
danke erstmal für deine Antwort.

Ja, ich bin mir sicher, dass uploads existiert. Ich habe folgende Ordnetstruktur (auszugsweise):
/ uploads
/ var
---/ www
------/ testprojekt
---------/ uploads
---------/ index.html
---------/ upload.php

Die Ausgabe mit den beiden zusätzlichen Zeilen lautet:

Code:
File is a pdf - ./tmp/phphWLfpt
uploads/test.pdf
Sorry, there was an error uploading your file.


Danke und VG
Stephan
 

Bananabert

Bekanntes Mitglied
Sieht eigenartig aus dein Problem.

Falls du es nicht schon gelöst hast, schau mal, ob auf dem Ordner "uploads" überhaupt Rechte zum Schreiben vorhanden sind. Ansonsten, reduziere ggf. deinen Code auf NUR den Upload.

z.B.

index.html
HTML:
<html>
    <body>
        <p><h1>PDF Uploader</h1></p>

        <form action="upload.php" method="post" enctype="multipart/form-data">
            PDF Datei ausw&auml;hlen:
            <input type="file" name="fileToUpload" id="fileToUpload">
            <input type="submit" value="Hochladen" name="submit">
        </form>
    </body>
</html>

upload.php
PHP:
<?
if(array_key_exists('fileToUpload', $_FILES)) {
    if(move_uploaded_file($_FILES['fileToUpload']['tmp_name'], 'uploads/'.$_FILES['fileToUpload']['name'])) {
        print_r( "file " . $_FILES['fileToUpload']['name'] . " was uploaded");
    } else {
        print_r("file " . $_FILES['fileToUpload']['name'] . " was NOT uploaded");
    }
}
?>
 

Ähnliche Java Themen

Neue Themen


Oben