BlackLove88: Fehler im Upload

Hallo,

ich habe hier ein Script das ich für den Upload von Bilder nehmen möchte. Leider kommt bei mir dann immer nur folgende Meldung:

Warning: copy(http:/www.meine-Seite.de/U/pics/grins.jpg) [function.copy]: failed to create stream: No such file or directory in /www/htdocs/v144567/U/upload.php on line 20
Ihre Daten wurden erfolgreich eingetragen!

In der Zeile 20 steht:

copy("$tempname","http:/www.meine_Seite.de/U/pics/$name");

hmm an was kann das denn liegen? So sieht dann hier das ganze script aus:

<?php
$tempname = $_FILES['file']['tmp_name'];
$name = $_FILES['file']['name'];
$type = $_FILES['file']['type'];
$size = $_FILES['file']['size'];

if($type != "image/gif" && $type != "image/pjpeg") {
    $err[] = "Es dürfen nur gif und jpeg Dateien hochgeladen werden.";
}
if($size > "15000") {
    $err[] = "Die Datei welche du hochladen willst, ist zu groß!<br>Maximale Dateigröße beträgt 15 KB!";
}

if(empty($err)) {
copy("$tempname","http:/www.meine_Seite.de/U/pics/$name"); $dbhost = "localhost";
// MySQL - Host, meist ist es localhost
$dbpass = "r237qv22";
// MySQL - Passwort
$dbuser = "v148718";
// MySQL - Benutzer
$dbdata = "v148718";
// MySQL - Datenbankname
$dbtabelle = "galerie";
// MySQL - Tabellenname

@mysql_connect($dbhost, $dbuser, $dbpass);
        // Auswahl der Datenbank
    @$x=mysql_select_db($dbdata);
        if (empty($x)) {
           echo "Fehler beim Verbinden mit dem Datenbankserver<br>";
           exit;
        }
if ($submit ="Absenden")
{
$query = "insert into $dbtabelle "
." (bild, text) values "
."('".$name."','".$text."')" ;
mysql_query($query);

echo "Ihre Daten wurden erfolgreich eingetragen!";
exit;
}
}
else {
    foreach($err as $error)
    echo "$error<br>";
}
?>

MFG,
BlackLove88

  1. Hi BlackLove88,

    copy("$tempname","http:/www.meine_Seite.de/U/pics/$name");

    Für den ersten Parameter sind die Anführungszeichen überflüssig, für den zweiten Parameter musst du einen Pfad übergeben und keine URL.

    MfG, Dennis.

    1. Hallo Dennis,

      Für den ersten Parameter sind die Anführungszeichen überflüssig

      was meinst du denn damit? Muss das dann so aussehen?

      copy($tempname,"http:/www.meine_Seite.de/U/pics/$name");

      für den zweiten Parameter musst du einen Pfad übergeben und keine URL.

      und dann nur so?

      copy($tempname,"/U/pics/$name");

      MFG,
      BlackLove88

      1. Hi BlackLove88,

        Für den ersten Parameter sind die Anführungszeichen überflüssig

        was meinst du denn damit? Muss das dann so aussehen?
        copy($tempname,"http:/www.meine_Seite.de/U/pics/$name");

        Ja.

        für den zweiten Parameter musst du einen Pfad übergeben und keine URL.

        und dann nur so?
        copy($tempname,"/U/pics/$name");

        Das kommt ganz darauf an, wo dein Script liegt, du musst den relativen Pfad
        (oder auch den absoluten, wenn du den weißt) angeben.

        MfG, Dennis.

        --
        Mein SelfCode: ie:{ fl:( br:> va:) ls:[ fo:) rl:( n4:# ss:) de:] js:| ch:{ sh:| mo:} zu:|
        That's life - Es gibt im Leben[tm] keine Zurück-Taste. (Fabian Transchel)
        1. Hallo Dennis,

          es hat geklappt DANKE!

          Gruß BlackLove88

  2. Hi,

    Hallo,

    ich habe hier ein Script das ich für den Upload von Bilder nehmen möchte. Leider kommt bei mir dann immer nur folgende Meldung:

    Warning: copy(http:/www.meine-Seite.de/U/pics/grins.jpg) [function.copy]: failed to create stream: No such file or directory in /www/htdocs/v144567/U/upload.php on line 20
    Ihre Daten wurden erfolgreich eingetragen!

    In der Zeile 20 steht:

    copy("$tempname","http:/www.meine_Seite.de/U/pics/$name");

    ich empfehle, den absoluten Server-Pfad (also vermutlich "/www/htdocs/v144567/U/pics/grins.jpg") als 2. Parameter zu verwenden, denn der Aufruf mit URL kann scheitern, falls die Datei bereits existiert und der wrapper das überschreiben nicht zulässt. Schau dir außerdem mal move_uploaded_file() an.

    if($type != "image/gif" && $type != "image/pjpeg") {
        $err[] = "Es dürfen nur gif und jpeg Dateien hochgeladen werden.";
    }
    if($size > "15000") {
        $err[] = "Die Datei welche du hochladen willst, ist zu groß!<br>Maximale Dateigröße beträgt 15 KB!";
    }

    Zur Überprüfung des hochgeladenen Files solltest du dir getimagesize() anschauen, denn auf die vom Browser übermittelten Daten, die du benutzt, kannst du dich nicht verlassen.

    // MySQL - Host, meist ist es localhost
    $dbpass = "r237qv22";
    ...

    *autsch*

    Gruß,
    Andreas.

    1. Hi Andreas,

      // MySQL - Host, meist ist es localhost
      $dbpass = "r237qv22";
      ...

      *autsch*

      LOL

      Dabei sagt mir das Passwort noch weit mehr als dir, mir sagt es nämlich, wer der Poster ist ;-)

      MfG, Dennis.

      --
      Mein SelfCode: ie:{ fl:( br:> va:) ls:[ fo:) rl:( n4:# ss:) de:] js:| ch:{ sh:| mo:} zu:|
      That's life - Es gibt im Leben[tm] keine Zurück-Taste. (Fabian Transchel)