Ankündigung

Einklappen
Keine Ankündigung bisher.

Upload - Aber nicht von der lokalen Festplatte!

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Gast-Avatar
    Ein Gast erstellte das Thema Upload - Aber nicht von der lokalen Festplatte!.

    Upload - Aber nicht von der lokalen Festplatte!

    Hallo,

    ich suche schon lange nach Hilfe für mein Problem:
    Ich möchte per URL ein Bild auf meinen Server laden.
    Hier mal mein bisheriger Code, der für den Upload per http verantwortlich ist (nicht selber gemacht!)

    Code:
    	  if (!preg_match('#^(https?|ftp)://#i', $name)) {
                //BAD URL
              echo "
    
    <p align=\"center\"> Bad URL... 1.</p>";
             }
    
             $filenum=fopen($file_u,"rb");
             if ($filenum == 0) {
               //BAD URL
               echo "
    
    <p align=\"center\"> Bad URL... 2.</p>";
             }
    
    
             //Binärdaten laden von Webseite
             $contents="";
             while (!feof($filenum)) {
               $contents.=fread($filenum,1024); //filesize($filename));
             }
             fclose($filenum);
    
            //Zielort
             $name = substr($name, strrpos($name, "/")+1);
             $sql_bild = mysql_query("SELECT dvdid FROM dvd WHERE bild LIKE '%".$name."%'");
             // Bild schon vorhanden?
    		 if (mysql_num_rows($sql_bild) > 0) 
             {
    		 echo "Bild schon vorhanden!";
    		 die;
    		 }
             //Speichern der geladenen Daten
             $filenum=fopen("images/".$name,"wb");
             fwrite($filenum,$contents);
             fclose($filenum);
    		 }
    		 }
    allerdings kommt folgende Meldung und das in dauerschleife:

    Warning: feof(): supplied argument is not a valid stream resource in /home/www/web744/html/eintragen.php4 on line 208

    Warning: fread(): supplied argument is not a valid stream resource in /home/www/web744/html/eintragen.php4 on line 209


    Was stimmt denn da nicht? Kann mir bitte bitte jemand helfen? Bräuchte es dringend!!!

    Schonmal vielen Dank!

  • Gast-Avatar
    Ein Gast antwortete
    Hah, so einfach gings!!!
    Einfach ein text feld und das zum uploaden übergeben und schon funktionierts... super
    vielen dank für den denkanstoß
    und sorry fürs nerven

    Einen Kommentar schreiben:


  • DiBo33
    antwortet
    Zitat von InFlame
    Zu 1.: Hättest du dafür ein beispiel? ich find nix
    http://www.php-faq.de/q/q-formular-upload-php4.html


    Zitat von InFlame
    zu 2.: Nochmal von vorne:
    Ich möchte nicht erst eine Datei auf meine Festplatte speichern, bevor ich die datei im Formular auswählen und hochladen kann. Ich möchte einfach nur die URL zu dem bild eingeben und das script soll mir die Datei auf den Server speichern. Das ist eigentlihc mein Ziel.
    Habe aber in meinem Formular beide möglichkeiten!
    Nur habe ich dafür ein und das selbe input feld genommen. geht wohl nicht, oder?
    Wie du mittlerweile geerkt hast, nein.

    Zitat von InFlame
    Kann das sein dass wir jetzt irgendwie aneinander vorbei reden???
    Jetzt nicht, aber vorher.

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    Zitat von DiBo33
    @InFlame
    1. Betrachte dir nochmals, wie ein korrekter HTTP-Fileupload funktioniert.
    2. Ein HTTP-Fileupload geht nur vom Client zu Server,
    sonst musst dzu auf andere Technik ausweichen, wobei du logischerweise dann nicht die Datei vom lokalen System des [Clients[/b] auswählen kannst.
    Ok, langsam versteh ich auch nix mehr

    Zu 1.: Hättest du dafür ein beispiel? ich find nix

    zu 2.: Nochmal von vorne:
    Ich möchte nicht erst eine Datei auf meine Festplatte speichern, bevor ich die datei im Formular auswählen und hochladen kann. Ich möchte einfach nur die URL zu dem bild eingeben und das script soll mir die Datei auf den Server speichern. Das ist eigentlihc mein Ziel.
    Habe aber in meinem Formular beide möglichkeiten!
    Nur habe ich dafür ein und das selbe input feld genommen. geht wohl nicht, oder?
    Damit man sich es besser vorstellen kann, mein Formular:


    Kann das sein dass wir jetzt irgendwie aneinander vorbei reden???

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    Zitat von robo47
    öhm hatten wir es hier nicht grade davon dateien die via http:// .. erreichbar sind auf den server zu laden ?
    was hat das jettz wieder mit nem normalen client -> server upload zu tun ? hab ich was verpasst ?
    doch doch, hast schon richtig verstanden...

    es gibt ja 2 möglichkeiten in meinem Formular. Einmal per client, oder per http. Habe aber für beide fälle das selbe input feld genommen. geht wohl nicht?

    Einen Kommentar schreiben:


  • DiBo33
    antwortet
    @robo47
    bin ich mir auch gerade am überlegen.

    @InFlame
    1. Betrachte dir nochmals, wie ein korrekter HTTP-Fileupload funktioniert.
    2. Ein HTTP-Fileupload geht nur vom Client zu Server,
    sonst musst dzu auf andere Technik ausweichen, wobei du logischerweise dann nicht die Datei vom lokalen System des [Clients[/b] auswählen kannst.

    Einen Kommentar schreiben:


  • robo47
    antwortet
    öhm hatten wir es hier nicht grade davon dateien die via http:// .. erreichbar sind auf den server zu laden ?
    was hat das jettz wieder mit nem normalen client -> server upload zu tun ? hab ich was verpasst ?

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    Also:
    Ich habe ein Formular in dem ich verschiedene Daten eingebe.
    Unter anderem kann man dort am schluss eine Datei hochladen. Hierzu habe ich ein Feld

    <input type="file" name="file" enctype="multipart/form-data">

    Da ich aber sowohl übers Internet oder per localen Datenträger Dateien hochladen möchte, hab ich noch eine Variabel erzeugt, die dem phpscript sagt, was ich machen will

    <input type="radio" name="http" value="ja">
    HTTP
    <input type="radio" name="http" value="nein" checked>
    Local


    Habe ich z.B. http ausgewählt kopiere ich einfach die URL in das "file" Feld und schicke es weg.

    Wenn ich so überlege... habe ich das falsche Feld für die URL??
    hmm........
    wie müsste ich denn die URL an php schicken? per "text" input?

    Einen Kommentar schreiben:


  • DiBo33
    antwortet
    <input type="file" name="file" enctype="multipart/form-data">
    Wow.

    Am besten du erklärst mal den grundlegenden Aufbau der ganzen Geschichte.

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    Zitat von DiBo33
    Und was steht in $name?
    lt. deiner Fehlerbeschreibung "44459.jpg", sollte da nicht etwas anderes stehen?
    hmm.. du hast recht. echo $name ergibt "51165.jpg" (mit dem beispiel von oben).
    $name wird hiermit definiert:

    $name = $_FILES['file']['name'];

    Formular sieht so aus:

    Code:
    <tr> 
          <td width="13%"></td>
          <td colspan="3">
            <input type="radio" name="http" value="ja">
            HTTP 
            <input type="radio" name="http" value="nein" checked>
            Local </td>
        </tr>
        <tr> 
          <td width="13%">Cover</td>
          <td colspan="3"> 
            <input type="file" name="file" enctype="multipart/form-data">
          </td>
        </tr>
        <tr>
    Ich wähle aus, ob ich per http oder per local uploade. Je nachdem springt er im php code zu dem gebrauchten code (simple if abfrage)...

    Einen Kommentar schreiben:


  • DiBo33
    antwortet
    bei var_dump(fopen($name)); kommt folgende Meldung
    Und was steht in $name?
    lt. deiner Fehlerbeschreibung "44459.jpg", sollte da nicht etwas anderes stehen?

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    Zitat von DiBo33
    Zitat von InFlame
    [i]Warning: fopen(): Unable to access 44459.jpg in /home/www/web744/html/eintragen.php4 on line 200
    Du hast kein Zugriff auf /home/www/web744/html/44459.jpg
    Wie sehen die Rechte aus?
    Das ist ja das komische. Das ist ja mein Server und die Datei existiert ja im prinzip nicht.
    Wenn ich z. B. "http://www.ofdb.de/images/film/51/51165.jpg" als gewünschte Datei eintrage, kommt die selbe Meldung wie oben, nur eben mit einem anderen namen..... ich verstehs einfach nicht........

    Einen Kommentar schreiben:


  • DiBo33
    antwortet
    Zitat von InFlame
    [i]Warning: fopen(): Unable to access 44459.jpg in /home/www/web744/html/eintragen.php4 on line 200
    Du hast kein Zugriff auf /home/www/web744/html/44459.jpg
    Wie sehen die Rechte aus?

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    Zitat von DiBo33
    Zitat von InFlame
    was soll mir das jetzt sagen? Welche 2 parameter will er denn??
    Achtung, die Antwort könnte im Manual stehen, also nur nicht anschauen.
    http://www.php.net/manual/de/function.fopen.php
    Wie du siehst, hab ich meinen Beitrag schon geändert. Habe meinen Fehler selber entdeckt...

    Einen Kommentar schreiben:


  • DiBo33
    antwortet
    Zitat von InFlame
    was soll mir das jetzt sagen? Welche 2 parameter will er denn??
    Achtung, die Antwort könnte im Manual stehen, also nur nicht anschauen.
    http://www.php.net/manual/de/function.fopen.php

    Einen Kommentar schreiben:

Lädt...
X