Problem Dateiupload PHP

Diskutiere Problem Dateiupload PHP im Scriptsprachen Forum; Hallo, ich habe leider sehr wenig Ahnung von PHP und habe mir mit viel googlen folgendes kleines Script zusammengebaut/klaut, das eigentlich PDFs...

  1. eldrior
    eldrior 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...

    index.html (open)

    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 (open)

    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!
     
  2. Vielleicht hilft dir das kostenlose Training weiter --> (hier klicken)
  3. Thallius
    Thallius Bekanntes Mitglied
    und du bist sicher das es einen Ordner uploads/ gibt ?

    Mach doch mal ein

    Code (Text):

    echo $_FILES["fileToUpload"]["tmp_name"]."<br>";
    echo $target_file."<br>";
     
    vor den move befehl.

    Gruß

    Claus
     
  4. eldrior
    eldrior 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 (Text):
    File is a pdf - ./tmp/phphWLfpt
    uploads/test.pdf
    Sorry, there was an error uploading your file.

    Danke und VG
    Stephan
     
  5. Bananabert
    Bananabert 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");
        }
    }
    ?>
     
  6. eldrior
    eldrior Mitglied
    Ja, das ist peinlich. Ich Schreibrechte für meinen User, aber nicht für den Apache User verteilt, jetzt funktioniert alles.

    Vielen Dank nochmal!
     
  7. Schau dir jetzt hier den Kurs an und lerne Java zu programmieren: --> Hier klicken, um mehr zu erfahren (Klick)
Die Seite wird geladen...

Problem Dateiupload PHP - Ähnliche Themen

Jakarta Net Commons - FTPClient: Problem bei Dateiupload
Jakarta Net Commons - FTPClient: Problem bei Dateiupload im Forum Netzwerkprogrammierung
Probleme bei Dateiupload mit socket
Probleme bei Dateiupload mit socket im Forum Netzwerkprogrammierung
JDBC Methodenaufruf Problem
JDBC Methodenaufruf Problem im Forum Java Basics - Anfänger-Themen
Timer Probleme
Timer Probleme im Forum Für Verirrte - Fragen zu JavaScript
LIBGDX Texturen Problem
LIBGDX Texturen Problem im Forum Spiele- und Multimedia-Programmierung
Thema: Problem Dateiupload PHP