Mali: zwei selbe Funktionsaufrufe nacheinander => move_uploaded_file

Hi zusammen

Ich bin am verzweifeln, hoffe ich bekomme hier den entscheidenden Tipp wie ich folgendes Problem lösen kann:

Ich habe mir eine Funktion gebastelt, welche, je nach Parameter, eine Bilddatei an ein einen anderen Ort speichert.

Quellcode dazu unter http://nopaste.gsfx.de/view/fc9fd16f7e43cb2c7561091816e6edd4/

Der Aufruf ist wie folgt:

	EditImage($_FILES['Filedata'
['tmp_name'],$NewFileName, $extension, 0);  
	  
	EditImage($_FILES['Filedata']['tmp_name'],$NewFileName, $extension, 1);  

Jeder der Aufrufe funktioniert einzeln, nur nacheinander geht es nicht. Die Datei wird beim 2 Aufruf nicht raufgeladen, egal ob ich 0 oder 1 zuerst nehme.

Kann mir einer sagen, was das Problem ist und wieso PHP bei 2. Aufruf die Datei nicht rauflädt?

Vielen Dank und Gruss
Mali

  1. Hello,

    Jeder der Aufrufe funktioniert einzeln, nur nacheinander geht es nicht. Die Datei wird beim 2 Aufruf nicht raufgeladen, egal ob ich 0 oder 1 zuerst nehme.

    Kann mir einer sagen, was das Problem ist und wieso PHP bei 2. Aufruf die Datei nicht rauflädt?

    Wie meinst Du das, "beim zweiten Aufruf"?
    Löst Du einen zweiten Request aus per Browser oder meinst Du, dass Du die Funktion innerhalb des Scriptes zweimal hintereinander benutzt und dabei nur den Parameter "web" änderst?

    Das kann dann nicht funktionieren, weil "weg ist weg". Wenn die Datei beim ersten Mal berits verschoben worden ist, ist sie beim zweiten Aufruf ja nicht mehr im Quellpfad vorhanden.

    Liebe Grüße aus dem schönen Oberharz

    Tom vom Berg

    --
    Nur selber lernen macht schlau
    http://bergpost.annerschbarrich.de
    1. Moin

      Wie meinst Du das, "beim zweiten Aufruf"?

      Naja

        
      	EditImage($_FILES['Filedata']['tmp_name'],$NewFileName, $extension, 0);  
      
      

      => Geht

        
      	EditImage($_FILES['Filedata']['tmp_name'],$NewFileName, $extension, 1);  
      
      

      => Geht

      	EditImage($_FILES['Filedata'
      ['tmp_name'],$NewFileName, $extension, 0);  
      	  
      	EditImage($_FILES['Filedata']['tmp_name'],$NewFileName, $extension, 1);  
      
      

      und

      	EditImage($_FILES['Filedata'
      ['tmp_name'],$NewFileName, $extension, 1);  
      	  
      	EditImage($_FILES['Filedata']['tmp_name'],$NewFileName, $extension, 0);  
      
      

      => Geht ned

      Das kann dann nicht funktionieren, weil "weg ist weg". Wenn die Datei beim ersten Mal berits verschoben worden ist, ist sie beim zweiten Aufruf ja nicht mehr im Quellpfad vorhanden.

      Dooh, jetzt wo dus sagst....

      Kann ich $_FILES['Filedata']['tmp_name'] irgendwie zwischenspeichern dass ich sie beim 2. Aufruf noch habe?

      Hab irgendwie ein Blackout *GG*

      Gruss und Danke für die schnell Hilfe.

      Gruss
      Mali

      1. Hello,

        Das kann dann nicht funktionieren, weil "weg ist weg". Wenn die Datei beim ersten Mal berits verschoben worden ist, ist sie beim zweiten Aufruf ja nicht mehr im Quellpfad vorhanden.

        Dooh, jetzt wo dus sagst....

        Kann ich $_FILES['Filedata']['tmp_name'] irgendwie zwischenspeichern dass ich sie beim 2. Aufruf noch habe?

        Es ist die Frage, ob Du das überhaupt tun musst.
        Wenn Du nicht die Funktion move_uploaded_file() benutzt, sondern stattdessen

        1 x http://de2.php.net/manual/en/function.is-uploaded-file.php
        2 x http://de2.php.net/manual/en/function.copy.php

        1 x [http://de2.php.net/manual/en/function.unlink.php]

        hättest Du, was Du wolltest.

        Den Sinn und Zweck des Scriptes habe ich noch nicht ganz verstanden, muss ich aber auch nicht, oder?

        Liebe Grüße aus dem schönen Oberharz

        Tom vom Berg

        --
        Nur selber lernen macht schlau
        http://bergpost.annerschbarrich.de
        1. Moin Moin

          Den Sinn und Zweck des Scriptes habe ich noch nicht ganz verstanden, muss ich aber auch nicht, oder?

          Nee, musste ned, hab ich ja auch ned.

          Ich werte diese Frage nun mal als groben Denkfehler ab und werde es nun mal logisch anschauen :)

          Vielen Dank für die Unterstüzung.

          Gruss
          Mali