Kai: Zusammenspiel JS und PHP, wer hilft mir da mal eben?

Hallo,

ich habe an einen php-mailer diese Uploadfunktion eingebaut. Der Upload von Dateien funktioniert auch sehr gut.

Aber ich finde meine Dateinamen nirgens wieder. Ich dachte, sie wären in irgendeinem Array $file oder sowas, aber das sind sie nicht.

Es kommt zwar ein Array _REQUEST["file"] an, aber dessen Inhalt ist: no value.

Wie muss ich jetzt vorgehen, um an die hochgeladenen Dateien in meinem php-mailer zu gelangen?

Grüße, Kai

  1. Moin!

    Aber ich finde meine Dateinamen nirgens wieder. Ich dachte, sie wären in irgendeinem Array $file oder sowas, aber das sind sie nicht.

    Die sind in einem Array namens $_FILES.

    Versuche:

    print '<pre>';  
    var_dump($_FILES);  
    print '</pre>';
    

    Der Rest ist selbsterklärend.

    MFFG (Mit freundlich- friedfertigem Grinsen)

    fastix

    1. Moin!

      Aber ich finde meine Dateinamen nirgens wieder. Ich dachte, sie wären in irgendeinem Array $file oder sowas, aber das sind sie nicht.

      Die sind in einem Array namens $_FILES.

      Hi Fastix,

      danke, dass Du Dich meines Problems annimmst.

      Also, der Gang scheint doch folgender zu sein (bitte korrigiere mich):

      Es wird eine php.php über javascript aufgerufen. Diese macht den Upload und gibt eine Rückmeldung an das Ursprungsdokument (welches übrigens die Dateinamen dann kennt).

      Versuche:

      print '<pre>';

      var_dump($_FILES);
      print '</pre>';

      
      >   
        
      Ergibt in der formularverarbeitenden Datei (sende\_mail.php):  
        
      array(0) {  
      }  
        
      Soweit auch klar, weil die ja nicht das uploadende Script ist.  
        
        
      Das uploadende Script aber [(php.php)](https://github.com/valums/file-uploader/blob/master/server/php.php) will gar nicht arbeiten, wenn ich diesen Code einsetze. Vielleicht kannst Du mir aber sagen, wo ich ihn einsetzen muß. Fakt bleibt aber, das Array benötige ich in der formularverarbeitenden Datei (sende\_mail.php).  
        
        
      Gelungen ist mir indes, in der php.php die Dateinamen der Uploadfiles in eine Sessionvariable zu geben und später in dem formularverarbeitenden Datei wieder aufzurufen. Ist aber eher unelegant, wenn es tatsächlich eine Variable gibt/gäbe, in der die Dateinamen alle schon drin stehen.  
        
      Wenn sie also in einem [$_FILES](http://php.net/manual/de/reserved.variables.files.php)-Array stehen, das ich auswerten könnte, wäre das sehr klasse. Andere Frage: Was passiert mit diesem Array nach Absenden der Mail? Wird/würde es automatisch zerstört?  
        
      Grüße, Kai
      
      1. Moin!

        Du hast ein Formular.
        Das bedient der Benutzer des Browsers.
        Der wählt eine Datei aus und gibt Anweisung diese abzusenden.
        Der Browser sendet via HTTP-Protokoll die Daten an den Webserver.
        Der Webserver schreibt für PHP 1) die Datei(en) unter temporären Namen in das temporäre Verzeichnis und die weiteren erforderlichen Daten in die Umgebung.
        PHP stellt dem gestartetem Skript diese Daten als "superglobale" Variablen zur Verfügung.

        Support für

        https://github.com/valums/file-uploader/blob/master/server/php.php
        gibt es beim Hersteller des Skriptes. Hat der ein Forum?

        MFFG (Mit freundlich- friedfertigem Grinsen)

        fastix

        1. Hallo Fastix,

          Support für

          https://github.com/valums/file-uploader/blob/master/server/php.php
          gibt es beim Hersteller des Skriptes. Hat der ein Forum?

          Ja, so ähnlich. Man kann Kommentare an ihn senden, die er beantwortet. Macht er auch IMHO zeitnah und gut, aber mein Englisch ist leider nicht so gut.

          Aber ich akzeptiere, dass Du Dich da nicht auf die Schnelle einarbeiten kannst oder willst.

          Danke trotzdem für die bisher geleistete Hilfe.

          Kai

          1. https://github.com/valums/file-uploader/blob/master/server/php.php

            Trotzdem noch eine Frage:

            Kannst Du (oder jemand anderes) mir sagen, wie ich an folgender Stelle im Script auf eine Variable meiner variables.inc zugreifen kann? Include tuts da ja wohl nicht, weils objectorientiert programmiert ist? :-(

              
            if ($this->file->save($uploadDirectory . $filename . '.' . $ext)){  
            //include ("c:\xampp\htdocs\test4\variables.inc"); // hier ist die Stelle mit dem Code, der nicht funktioniert zum includen  
            return array('success'=>true);  
            } else {  
            return array('error'=> 'Could not save uploaded file.' .  
            'The upload was cancelled, or server error encountered');  
            }  
            }  
            }  
            
            

            Danke und Gruß, Kai

            1. Hi,

              habs auch im Originalblog gepostet, aber vielleicht weiß das ja hier auch jemand?

              Meine Frage im Blog.

              Danke und Gruß, Kai

  2. Moin!

    Der Upload von Dateien funktioniert auch sehr gut.

    Das kannst Du gar nicht wissen. Siehe Rest des Postings.

    MFFG (Mit freundlich- friedfertigem Grinsen)

    fastix

    1. Moin!

      Der Upload von Dateien funktioniert auch sehr gut.
      Das kannst Du gar nicht wissen. Siehe Rest des Postings.

      Hallo Fastix,

      doch, das sehe ich ja auf dem Server, ob die Dateien dort auch alle upgeloadet sind.?

      Gruß, Kai