Probleme mit move_uploaded_file

Borste

Grünschnabel
Hallo!

Ich habe ein Problem mit folgendem Script:

PHP:
                //Überprüfen, ob Datei auf den Server geladen werden konnte
                if(is_uploaded_file($_FILES['r_anhang']['tmp_name']))
                {
                    //Wenn Datei auf Server geladen werden konnte, dann Text ausgeben
echo '                    <p>Die Datei wurde erfolgreich auf den Server geladen!</p>';

                    //Variablen definieren
                    $uploaddir = 'modules/rechnungen/uploads';
                    $filename = $_FILE['r_anhang']['name'];
                    $filesize = '10000000';

                    //Überprüfen, ob das Verzeichnis existiert!
                    if(!file_exists($uploaddir))
                    {
                        //Wenn nicht, dann das Verzeichnis erstellen
                        if(mkdir($uploaddir,0777))
                        {
                            //Wenn Verzeichnis erstellt wurde, dann Text ausgeben
echo '                            <p>Ordner erfolgreich erstellt!</p>';
                        }
                        else
                        {
                            //Wenn Verzeichnis nicht erstellt werden konnte, dann Text ausgeben
echo '                            <p>Fehler beim erstellen des Ordners!</p>';
                        }

                        //Die Zugriffsrechte des Verzeichnisses auf 777 setzen
                        if(chmod($uploaddir,0777))
                        {
                            //Wenn Rechte gesetzte werden können, dann Text ausgeben
echo '                            <p>Alle Rechte gesetzt!</p>';
                        }
                        else
                        {
                            //Wenn Rechte nicht gesetzte werden können, dann Text ausgeben
echo '                            <p>Fehler beim setzen der Berechtigungen!</p>';
                        }
                    }
                    else
                    {
                        //Wenn Verzeichnis vorhanden, dann Text ausgeben
echo '                        <p>Das Verzeichnis besteht bereits!</p>';
                    }

                    //Überprüfen, ob Datei nicht zu groß ist
                    if($_FILE['r_anhang']['size'] <= $filesize)
                    {
                        //Wenn Größe okay, dann Datei in Zielverzeichnis verschieben
                        if(!move_uploaded_file($_FILE['r_anhang']['tmp_name'], $uploaddir.'/'.$filename))
                        {
                            //Wenn Datei nicht verschoben werden konnte, dann Text ausgeben
echo '                            <p>Es ist ein Fehler beim Verschieben der Datei aufgetreten!</p>';
                        }
                        else
                        {
                            //Wenn Datei verschoben werden konnte, dann Text ausgeben
echo '                            <p>Die Datei wurde erfolgreich verschoben!</p>';
                        }
                    }
                }
                else
                {
                    //Wenn Datei nicht auf den Server geladen werden konnte, dann Text ausgeben
echo '                    <p>Die Datei wurde nicht auf den Server geladen!</p>';
                }
Wenn ich das ausführe, bekomme ich die Mitteilung, dass die Datei erfolgreich auf den Server kopiert wurde, das verschieben in den Zielordner funktioniert aber nicht. Das Verzeichnis wird auch erstellt und das Setzen der Rechte funktioniert auch. Hab ich irgendwo einen Fehler im Script oder kommt der Fehler eher von der Serverkonfiguration bzw. Rechtevergabe der verschiedenen Verzeichnisse/Unterverzeichnisse?

Gruß
Borste
 
Lass dir mal alle Fehlermeldungen anhand von E_ALL anzeigen...

Es könnte allerdings auch hierran liegen:

PHP:
                        if(!move_uploaded_file($_FILE['r_anhang']['tmp_name'], $uploaddir.'/'.$filename))

Versuchs mal so:

PHP:
                        if(!move_uploaded_file($_FILE['r_anhang']['tmp_name'], $uploaddir."/".$filename))

Meist passiert es das man versehentlich statt dem Anführungszeichen " das mit dem einen nur nimmt '

Meist Interpretiert das PHP falsch aber gibt dir leider auch keine genaue Aussage... er geht den Code zwar durch führt ihn schluss endes einfach nicht aus und er sagt dir dennoch ob Falsch oder Richtig das die Datei erfolgreich kopiert ist...

Wie gesagt versuch mal mit E_ALL alle Meldungen einzublenden und lass es uns wissen
 
Meist Interpretiert das PHP falsch aber gibt dir leider auch keine genaue Aussage... er geht den Code zwar durch führt ihn schluss endes einfach nicht aus und er sagt dir dennoch ob Falsch oder Richtig das die Datei erfolgreich kopiert ist...
Was ist denn das für eine unsinnige Aussage? In diesem Fall ist es egal, ob das Schrägstrich-Zeichen in einfachen oder doppelten Anführungszeichen steht. Nur wenn in der Zeichenkette Variablen vorkommen, gibt es eine unterschiedliche Interpretation beider Formen.
 
Zurück