phpbar.de logo

Mailinglisten-Archive

[php] move_uploaded_file verschiebt doppelt?

[php] move_uploaded_file verschiebt doppelt?

Lutz Zetzsche Lutz.Zetzsche at sea-rescue.de
Sam Nov 3 10:03:45 CET 2007


Hallo Armin,

Am Samstag, 3. November 2007 schrieb Armin Briatta:
> Ich habe es hinbekommen, eine Datei per Formular auf den Server zu
> laden, auf meiner eigenen Domain wird sie über move_uploaded_file()
> auch genau dahin verschoben, wohin sie soll.
>
> Das gleiche script verursacht bei einer anderen, anderswo gehosteten
> Domain einen seltsamen Effekt: Die Datei wird sowohl ins
> Zielverzeichnis verschoben als auch ins Wurzelverzeichnis der Domain.
>
> Habe ich da einen entscheidenden Fehler gemacht?
>
> Die wichtigen Passagen des Scripts:
>
>
>
> if(isset($_POST['submit']))
> {
> $VerbindungsID = ftp_connect($FTPServer);
> $LoginErgebnis = ftp_login($VerbindungsID, $FTPUser, $FTPPasswort);
>
> if($VerbindungsID && $LoginErgebnis)
> {
>    $UploadErgebnis = ftp_put($VerbindungsID,
> $_FILES['benutzerdatei']['name'],
> $_FILES['benutzerdatei']['tmp_name'], FTP_BINARY);
>
> $datei_endgueltig = $_FILES['benutzerdatei']['name'];
>
> if (move_uploaded_file($_FILES['benutzerdatei']['tmp_name'],
> $datei_endgueltig))
> {
>    echo "Die Datei wurde erfolgreich aufgeladen.";
>
> }
>    else
> {
>    echo "Die Datei konnte leider nicht aufgeladen werden.";
> }
>    ftp_quit($VerbindungsID);
> }
> }
> else
> {
> ?>
> <form action="<?php echo $_SERVER['PHP_SELF']; ?>"
> enctype="multipart/form-data" method="post">
> <input name="benutzerdatei" type="file" />
> <input name="submit" type="submit" value="Aufladen" />
> </form>
> <?php
> }
>
> ?>

wofür brauchst Du die FTP-Verbindung, um die Datei hochzuladen? Was 
bezweckst Du genau? Kannst Du bitte einmal genau beschreiben, was Du 
machen möchtest?

Ansonsten: Du arbeitest einmal mit FTP und verschiebst dann die Datei 
mit move_uploaded_file(). Ich vermute in Deinem Fall, daß es sich 
hierbei um denselben Zielrechner handelt, womit der FTP-Teil 
überflüssig wäre.

Auf der Basis der Annahme, daß der Zielrechner bei beiden Operationen 
derselbe ist, ist es vermutlich so, daß Du bei den Operationen in 
verschiedenen Verzeichnispfaden bist und mit relativen Pfadangaben 
arbeitest. Daher erscheint die Datei an verschiedenen Stellen. Das ist 
allerdings nur spekuliert.

Laß Dir doch einmal die Variableninhalte an den jeweiligen Stellen 
ausgeben. Dann siehst Du sofort, woran es liegt.


Viele Grüße,

Lutz

php::bar PHP Wiki   -   Listenarchive