• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Video hochladen - Fehlerbehebung

Nikas3D

Neues Mitglied
PHP:
<?php
    error_reporting(E_ALL);

    // Funktionen definieren
    // -----------------------------------------------
    function checkUpload($myFILE, $file_extensions, $mime_types, $maxsize)
    {
        $errors = array();
        // Uploadfehler prüfen
        switch ($myFILE['error']){
            case 1: $errors[] = "Bitte wählen Sie eine Datei aus, die <b>kleiner als ".ini_get('upload_max_filesize')."</b> ist.";
                    break;
            case 2: $errors[] = "Bitte wählen Sie eine Datei aus, die <b>kleiner als ".$maxsize/(1024*1024)." MB</b> ist.";
                    break;
            case 3: $errors[] = "Die Datei wurde nur teilweise hochgeladen.";
                    break;
            case 4: $errors[] = "Es wurde keine Datei ausgewählt.";
                    return $errors;
                    break;
            default : break;
        }
        // MIME-Type prüfen
        if(count($mime_types)!=0 AND !in_array(strtolower($myFILE['type']), $mime_types)){
            $fehler = "Falscher MIME-Type (".$myFILE['type'].").<br />".
                      "Erlaubte Typen sind:<br />\n";
            foreach($mime_types as $type)
                $fehler .= " - ".$type."\n<br />";
            $errors[] = $fehler;
        }
        // Dateiendung prüfen
        if($myFILE['name']=='' OR (count($file_extensions)!=0 AND !in_array(strtolower(getExtension($myFILE['name'])), $file_extensions))){
            $fehler = "Falsche Dateiendung (".getExtension($myFILE['name']).").<br />".
                      "Erlaubte Endungen sind:<br />\n";
            foreach($file_extensions as $extension)
                $fehler .= " - ".$extension."\n<br />";
            $errors[] = $fehler;
        }
        // Dateigröße prüfen
        if($myFILE['size'] > $maxsize){
            $errors[] = "Datei zu groß (".sprintf('%.2f',$myFILE['size']/(1024*1024))." MB).<br />".
                        "Erlaubte Größe: ".$maxsize/(1024*1024)." MB\n";
        }
        return $errors;
    }

    // gibt die Dateiendung einer Datei zurück
    function getExtension ($filename)
    {
        if(strrpos($filename, '.'))
             return substr($filename, strrpos($filename, '.')+1);
        return false;
    }

    // erzeugt einen Zufallswert
    function getRandomValue()
    {
        return substr(md5(rand(1, 9999)),0,8).substr(time(),-6);
    }

    // erzeugt einen neuen Dateinamen aus Zufallswert und
    // Dateiendung
    function renameFile ($filename)
    {
        return  getRandomValue().".".getExtension($filename);
    }

    // Werte zur Dateiprüfung initialisieren
    // -----------------------------------------------
    $maxsize = 100000000; // 100.000.000
    $file_extensions = array('wmv');
    $mime_types = array('video/x-ms-wmv');

    // Upload-Ordner definieren
    // -----------------------------------------------
    $ordner = "uploads/";

    // Beginn des Skriptes
    // -----------------------------------------------

    echo "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01//EN\" \n".
         "\"http://www.w3.org/TR/html4/strict.dtd\">\n";
    echo "<html>\n";
    echo "<head>\n";
    echo " <title>Datei-Upload</title>\n";
    echo "</head>\n";
    echo "<body>\n";

    // Falls der Benutzer auf "Upload" gedrückt hat,
    // wird die Datei überprüft
    if(isset($_POST['submit']) AND $_POST['submit']=='Upload'){
        // Fehlerarray erzeugen
        $errors = array();
        $myFILE = $_FILES['Datei'];
        $errors = checkUpload($myFILE, $file_extensions, $mime_types, $maxsize);
        if(count($errors)){
            echo "<p>\n".
                 "Die Datei konnte nicht gespeichert werden.<br />\n";
            foreach($errors as $error)
                echo $error."<br />\n";
            echo "<a href=\"".$_SERVER['PHP_SELF']."\">Zurück zum Upload-Formular</a>\n".
                 "</p>\n";
        }
        else {
            do {
                $neuer_name = renameFile($myFILE['name']);
            } while(file_exists($ordner.$neuer_name));
            if(@move_uploaded_file($myFILE['tmp_name'], $ordner.$neuer_name)){
                echo "<p>\n".
                      "Die Datei wurde erfolgreich gespeichert.<br />\n".
                      "<a href=\"".$_SERVER['PHP_SELF']."\">Zurück zum Upload-Formular</a>\n".
                      "</p>\n";
            }
            else{
                echo "<p>\n".
                      "Die Datei konnte nicht gespeichert werden.<br />\n".
                      "Es ist ein Upload-Fehler aufgetreten.<br />\n".
                      "Bitte versuchen Sie es später erneut.<br />\n".
                      "<br />\n".
                      "Sollte der Upload noch immer nicht funktionieren, informieren Sie uns bitte per Email.<br />\n".
                      "<a href=\"".$_SERVER['PHP_SELF']."\">Zurück zum Upload-Formular</a>\n".
                      "</p>\n";
            }
        }
    }
    // Beim ersten Aufruf des Skriptes wird das
    // Upload-Formular angezeigt
    else{
        echo "<h1>Laden Sie ein Bild hoch!</h1>\n";
        echo "<h2>Erlaubte Dateiendungen sind:</h2>\n";
            foreach($file_extensions as $extension)
                echo " - ".$extension."\n<br />";
        echo "<h2>Erlaubte Dateigröße:</h2>\n";
        echo " - maximal ".($maxsize/(1024*1024))." MB\n<br />";
        echo " <form ".
             "action=\"".$_SERVER['PHP_SELF']."\" ".
             "method=\"post\" ".
             "enctype=\"multipart/form-data\">\n";
        echo "  <label for=\"Datei\">Datei auswählen</label>\n";
        echo "  <input type=\"hidden\" name=\"MAX_FILE_SIZE\" value=\"".$maxsize."\" />\n";
        echo "  <input type=\"file\" name=\"Datei\" id=\"Datei\" />\n";
        echo "  <input type=\"submit\" name=\"submit\" value=\"Upload\" />\n";
        echo " </form>\n";
    }

    echo "</body>\n";
    echo "</html>\n";
?>

Mein gesatemr Code um ein Video hochzuladen!
Mein Bedrüfnisse!

es dürfen nur wmv hochgeladen werden und diese videos soollen dann im odrnder uploas erscheinen!

Funktinoert aber nicht!

Sobald ic hein Video (wmv) hochladen möchte und auf den button klicke, racuht er ein paar sekunden zeit und ich habe danach keine datei im order., es passiert aldso nichts!

Warum?

FAllS jemand ein anders Script kennt welches die gleichen möglcihketien besizt,: größe, format, ordern auswählen kann bitte nennen!
 
Zuletzt bearbeitet:
Werbung:
Werbung:
Du hast zwar error_reporting angeschaltet, aber ist display_errors auch an? Dann würdest Du ggfs. Fehlermeldungen von PHP sehen können. Ansonsten bleibt dir nur die Möglichkeit zum Debuggen. Ich würde damit anfangen
Code:
var_dump($_POST)
mal ausgeben zu lassen.
 
Werbung:
array(0) { }

wird ausgegeben! Bedeutet es wurde nichts in den array reingeschrieben:
Hier noch mal das Script welches, gleichzeitig auf einer Seite ermöglichken soll eine Datei auszuwählen und dann hochzuladen:
PHP:
<?php
    error_reporting(E_ALL);

    // Funktionen definieren
    // -----------------------------------------------
        var_dump($_POST);
    function checkUpload($myFILE, $file_extensions, $mime_types, $maxsize)
    {
        $errors = array();
        // Uploadfehler prüfen
        switch ($myFILE['error']){
            case 1: $errors[] = "Bitte wählen Sie eine Datei aus, die <b>kleiner als ".ini_get('upload_max_filesize')."</b> ist.";
                    break;
            case 2: $errors[] = "Bitte wählen Sie eine Datei aus, die <b>kleiner als ".$maxsize/(1024*1024)." MB</b> ist.";
                    break;
            case 3: $errors[] = "Die Datei wurde nur teilweise hochgeladen.";
                    break;
            case 4: $errors[] = "Es wurde keine Datei ausgewählt.";
                    return $errors;
                    break;
            default : break;
        }
        // MIME-Type prüfen
        if(count($mime_types)!=0 AND !in_array(strtolower($myFILE['type']), $mime_types)){
            $fehler = "Falscher MIME-Type (".$myFILE['type'].").<br />".
                      "Erlaubte Typen sind:<br />\n";
            foreach($mime_types as $type)
                $fehler .= " - ".$type."\n<br />";
            $errors[] = $fehler;
        }
        // Dateiendung prüfen
        if($myFILE['name']=='' OR (count($file_extensions)!=0 AND !in_array(strtolower(getExtension($myFILE['name'])), $file_extensions))){
            $fehler = "Falsche Dateiendung (".getExtension($myFILE['name']).").<br />".
                      "Erlaubte Endungen sind:<br />\n";
            foreach($file_extensions as $extension)
                $fehler .= " - ".$extension."\n<br />";
            $errors[] = $fehler;
        }
        // Dateigröße prüfen
        if($myFILE['size'] > $maxsize){
            $errors[] = "Datei zu groß (".sprintf('%.2f',$myFILE['size']/(1024*1024))." MB).<br />".
                        "Erlaubte Größe: ".$maxsize/(1024*1024)." MB\n";
        }
        return $errors;
    }

    // gibt die Dateiendung einer Datei zurück
    function getExtension ($filename)
    {
        if(strrpos($filename, '.'))
             return substr($filename, strrpos($filename, '.')+1);
        return false;
    }

    // erzeugt einen Zufallswert
    function getRandomValue()
    {
        return substr(md5(rand(1, 9999)),0,8).substr(time(),-6);
    }

    // erzeugt einen neuen Dateinamen aus Zufallswert und
    // Dateiendung
    function renameFile ($filename)
    {
        return  getRandomValue().".".getExtension($filename);
    }

    // Werte zur Dateiprüfung initialisieren
    // -----------------------------------------------
    $maxsize = 100000000; // 100.000.000
    $file_extensions = array('wmv');
    $mime_types = array('video/x-ms-wmv');

    // Upload-Ordner definieren
    // -----------------------------------------------
    $ordner = "uploads/";

    // Beginn des Skriptes
    // -----------------------------------------------

    echo "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01//EN\" \n".
         "\"http://www.w3.org/TR/html4/strict.dtd\">\n";
    echo "<html>\n";
    echo "<head>\n";
    echo " <title>Datei-Upload</title>\n";
    echo "</head>\n";
    echo "<body>\n";

    // Falls der Benutzer auf "Upload" gedrückt hat,
    // wird die Datei überprüft
    if(isset($_POST['submit']) AND $_POST['submit']=='Upload'){
        // Fehlerarray erzeugen
        $errors = array();
        $myFILE = $_FILES['Datei'];
        $errors = checkUpload($myFILE, $file_extensions, $mime_types, $maxsize);
        if(count($errors)){
            echo "<p>\n".
                 "Die Datei konnte nicht gespeichert werden.<br />\n";
            foreach($errors as $error)
                echo $error."<br />\n";
            echo "<a href=\"".$_SERVER['PHP_SELF']."\">Zurück zum Upload-Formular</a>\n".
                 "</p>\n";
        }
        else {
            do {
                $neuer_name = renameFile($myFILE['name']);
            } while(file_exists($ordner.$neuer_name));
            if(@move_uploaded_file($myFILE['tmp_name'], $ordner.$neuer_name)){
                echo "<p>\n".
                      "Die Datei wurde erfolgreich gespeichert.<br />\n".
                      "<a href=\"".$_SERVER['PHP_SELF']."\">Zurück zum Upload-Formular</a>\n".
                      "</p>\n";
            }
            else{
                echo "<p>\n".
                      "Die Datei konnte nicht gespeichert werden.<br />\n".
                      "Es ist ein Upload-Fehler aufgetreten.<br />\n".
                      "Bitte versuchen Sie es später erneut.<br />\n".
                      "<br />\n".
                      "Sollte der Upload noch immer nicht funktionieren, informieren Sie uns bitte per Email.<br />\n".
                      "<a href=\"".$_SERVER['PHP_SELF']."\">Zurück zum Upload-Formular</a>\n".
                      "</p>\n";
            }
        }
    }
    // Beim ersten Aufruf des Skriptes wird das
    // Upload-Formular angezeigt
    else{
        echo "<h1>Laden Sie ein Bild hoch!</h1>\n";
        echo "<h2>Erlaubte Dateiendungen sind:</h2>\n";
            foreach($file_extensions as $extension)
                echo " - ".$extension."\n<br />";
        echo "<h2>Erlaubte Dateigröße:</h2>\n";
        echo "Je nach Größe kann der Vorgang gewisse Zeit beanspruchen<br>";
        echo " - maximal ".($maxsize/(1024*1024))." MB\n<br />";
        echo " <form ".
             "action=\"".$_SERVER['PHP_SELF']."\" ".
             "method=\"post\" ".
             "enctype=\"multipart/form-data\">\n";
        echo "  <label for=\"Datei\">Datei auswählen</label>\n";
        echo "  <input type=\"hidden\" name=\"MAX_FILE_SIZE\" value=\"".$maxsize."\" />\n";
        echo "  <input type=\"file\" name=\"Datei\" id=\"Datei\" />\n";
        echo "  <input type=\"submit\" name=\"submit\" value=\"Upload\" />\n";
        echo " </form>\n";
    }

    echo "</body>\n";
    echo "</html>\n";
?>
 
Und nach dem Ausfüllen und Absenden des Formulars? Steht dann etwas in $_POST?

Oder kam das leere Array nach dem Absenden?
 
Werbung:
Du hast also das Formular abgeschickt und das $_POST-Array ist leer? Dann stimmt mit der Serverkonfiguration etwas nicht oder Du schickst nicht wirklich per POST ab.
 
ich habe ein anderes script benutzt und bei dem klappen auch nur bilder oder andere datein, aber keine filme!
Dann stimmt mit der Serverkonfiguration etwas nicht

Manuell über einen ftp-Zugang kann ich videos hochladen, das bedeutet, es kann eigentlich nicht an meinen servereinstellungen liegen, kennt vielleicht kjemand noch ein anderess script welches ich ausprobieren könnte!
 
Werbung:
Was ist denn das MAXSIZE-Limit? upload_max_filesize? Bitte drück dich bei sowas exakter aus. Man kann sich zwar häufig denken, was gemeint ist, aber das muss deshalb ja noch lange nicht stimmen. :)

Es sollte jetzt aber nicht so schwierig sein, ein PHP-Upload-Script zu finden. Suchbegriff etwa: „php upload script“

Edit: Das hier ist vielleicht noch interessant: http://www.php.net/manual/en/features.file-upload.common-pitfalls.php
 
Zuletzt bearbeitet:
ich versuche eine wieteres script zu finden und werde ggf, hier noch mal posten!

Ich habe jetzt 2 weitereScxripte ausprobiert: Bilder oder Textdatein klappen. Sobald es aber ein Video isst streikt jedes Script, obwohl es keine einschränkungen hat!
 
Zuletzt bearbeitet:
Werbung:
Zurück
Oben