Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] Schräge Frage zum Thema Dateiupload mit php

Einklappen

Neue Werbung 2019

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

  • [Erledigt] Schräge Frage zum Thema Dateiupload mit php

    Hallo,
    ich bin derzeit dabei mir ein kleines Content Management system für meine Website zu basteln. Nachdem ich die Sache am Anfang mittels pure-php angegangen bin und mir das Hirn mit Parameterübergaben zwischen HTML-Formularen geröstet habe bin ich als erfahrener c++-Programmierer auf die Idee gekommen, den Client als native Windows-Anwendung zu implementieren und lediglich HTML-gets und puts über eine HTTP-Komponente als Aufrufe von php-scripts zu implementieren.

    Ich rufe z.B. eine addpage.php auf meinem Webserver auf, die eine Page zur Site hinzufügt. Ich hoffe das Konzept kommt irgendwie rüber. Ich bin ziemlich erkältet und mein Schädel funktioniert nur auf halber Kraft

    Also "emuliert" mein C++-Programm einen Browser und ruft die passende URL auf.

    In meinem "CMS" wird viel Gebrauch von xml-Dateien gemacht, welche Sites, Content und sonstigen Kram beschreiben. Anstatt nun jedesmal, wenn sich etwas kleines ändert, die Änderungen an den xml-Dateien von php-Skripten auf dem Server ausführen zu lassen, würde ich gern ab und zu komplette xml-Dateien auf den Server hochladen. Ich möchte dazu keine FTP-Technik verwenden.

    Es ist doch z.B. möglich in einer HTML-Datei ein Formular mit einem Eingabefeld vom Typ "file" und einen Submit-Button dazu zu verwenden mittels POST ein php-Skript aufzurufen und eine Datei hochzuladen. Meine bescheidene Frage ist nun, wie ich ein solches Verhalten mittels meines C++-Programms hinbekomme. Wie gesagt verwende ich eine HTTP-Komponentenklasse meiner C++ Umgebung (Borland C++-Builder). Diese ermöglicht den Aufruf einer URL, POST und GET-Methoden und lliefert das Ergebnis (z.B. HTML-Seite) in einem Puffer.

    Hat jemand irgendeine Idee, die mir weiterhelfen könnte ? Ich kann ja schliesslich den Inhalt der Datei nicht einfach als Riesenvariable in die URL schreiben. Zumal das mit XML-ASCII-Daten recht lustig werden würde.

    Bin wie immer dankbar für jede Hilfe

    alionsonny

  • #2
    Re: Schräge Frage zum Thema Dateiupload mit php

    Zitat von alionsonny
    Es ist doch z.B. möglich [...] mittels POST [...] eine Datei hochzuladen.
    Zitat von alionsonny
    HTTP-Komponentenklasse [...] ermöglicht den Aufruf einer URL, POST und GET-Methoden
    Die Komponente ist also in der Lage einen Post-Request zu senden!?

    Was hindert Dich nun daran hierrüber eine Datei hochzuladen?

    Kommentar


    • #3
      du brauchst doch nur
      mit deinem client eine ftp verbindung zu öffnen, damit du die files dann nur noch rüberschieben musst.

      Kommentar


      • #4
        Zitat von Clan
        du brauchst doch nur
        mit deinem client eine ftp verbindung zu öffnen, damit du die files dann nur noch rüberschieben brauchst.
        Zitat von alionsonny
        Ich möchte dazu keine FTP-Technik verwenden.
        Warum auch immer...

        Kommentar


        • #5
          @karl-150
          den satz hatte ich überlesen gehabt.

          @alionsonny
          benutze eine ftp verbindung und mach dir das leben nicht schwerer als es ist

          Kommentar


          • #6
            Das Problem ist, daß die Lösung auch auf Webaccounts laufen soll, für die kein FTP-Login möglich ist.

            Gruß

            alionsonny

            Kommentar


            • #7
              dann benutze 'POST' wie es karl-150 schon geschrieben hat

              lg. clan

              Kommentar


              • #8
                Re: Schräge Frage zum Thema Dateiupload mit php

                Zitat von karl-150
                Zitat von alionsonny
                Es ist doch z.B. möglich [...] mittels POST [...] eine Datei hochzuladen.
                Zitat von alionsonny
                HTTP-Komponentenklasse [...] ermöglicht den Aufruf einer URL, POST und GET-Methoden
                Die Komponente ist also in der Lage einen Post-Request zu senden!?

                Was hindert Dich nun daran hierrüber eine Datei hochzuladen?
                Tja, und genau das ist die Frage, nämlich, wie ich die Datei in den POST-Request bekomme. Wie gesagt, kann ich ja schlecht die Datei als ASCII-Zeichenkettenparameter in die URL einfügen.

                Irgendwie kapiere ich nicht, wie das ganze funktionieren soll.

                Ich werde mir nochmal die HTTP-Komponente detailliert vornehmen. Vielleicht habe ich was übersehen.

                Danke soweit

                alionsonny

                Kommentar


                • #9
                  Re: Schräge Frage zum Thema Dateiupload mit php

                  Zitat von alionsonny
                  Tja, und genau das ist die Frage, nämlich, wie ich die Datei in den POST-Request bekomme.
                  Das sollte dann in etwa wie folgt aussehen:
                  Code:
                  Content-Type: multipart/form-data; boundary=BOUNDARY
                  Content-Length: DATEIGROESSE
                  
                  BOUNDARY
                  Content-Disposition: form-data; name="NAME"; filename="DATEINAME"
                  Content-Type: CONTENT-TYPE
                  
                  DATEIINHALT
                  BOUNDARY--
                  Wahrscheinlich bietet aber Deine Klasse, die hier ja keiner kennt, eine vereinfachte Möglichkeit.

                  Kommentar


                  • #10
                    Naja, vielleicht kennt ja doch jemand die TNMHTTP-Komponente im C++-Builder

                    Ich weiß nämlich nicht, wie ich obiges Konstrukt in dieser Komponente verwenden sollte. Dort gibt es eine Funktion namens Post, die eine URL und einen Dateinamen entgegen nimmt. Die Komponente meldet Erfolg, obwohl das $_FILES-Array im aufgerufenen php-skript leer ist. Zumindest ergibt das ein print_r-Aufruf im Skript.

                    Also irgendwie kommt die Datei nicht an

                    Gruß

                    alionsonny

                    Kommentar


                    • #11
                      Code:
                      <form enctype="multipart/form-data" action="upload.php" method="post">

                      Kommentar


                      • #12
                        @Zergling:

                        @alionsonny:
                        Zitat von alionsonny
                        Die Komponente meldet Erfolg, obwohl das $_FILES-Array im aufgerufenen php-skript leer ist.
                        Wie sehen denn die gesendeten Daten aus? Ist da was von Deiner Datei zu sehen?

                        Btw: Warum stellst Du die Frage eigentlich in einem PHP-Forum?

                        Kommentar


                        • #13
                          Naja Karl, ich weiß jetzt auch nicht so recht was Du meinst. Also, ich übergebe der Post-Methode der c++-Klasse einmal eine URL:

                          http://localhost/admin/index.php

                          Das funkt auch ganz prima, soll heißen das betreffende php-skript wird tatsächlich aufgerufen. Als zweiten Parameter bekommt die Post-Methode den dateinamen inklusive Pfad der hochzuladenden Datei. Das sieht dann z.B. so aus

                          Component->Post("http://localhost/admin/index.php","c:\\test.txt");

                          Also, wohlgemerkt das ist es auf der c++-Seite. Wenn ich nun im php-Skript folgendes mache:

                          print_r($_FILES);

                          kommt dabei:

                          Array
                          {
                          }

                          raus.

                          Gruß

                          alionsonny

                          Kommentar


                          • #14
                            Zitat von karl-150
                            Btw: Warum stellst Du die Frage eigentlich in einem PHP-Forum?
                            Weil ich in einem C++-Forum damit erst recht schief liegen würde. Ich habe das gesamte Web nach einer Lösung abgesucht. Die meisten treffer waren russische Sites und mein Kyrillisch ist etwas eingerostet

                            Gruß

                            alionsonny

                            Kommentar


                            • #15
                              ähmm...

                              http://www.google.de/search?q=php+po...:de:unofficial

                              bei mir ergebnis #4

                              http://www.tu-chemnitz.de/docs/php/f...le-upload.html

                              das erklärt den php-part relativ gut würd ich sagen

                              Was den C++-Part angeht kann ich Dir leider nicht helfen, aber Dein Problem scheint ja aktuell auch eher der php-part zu sein.

                              ich hab sowas erst kürzlich realisiert (die php seite) und das funktioniert nach bissl rumprobieren eigentlich recht einfach. Wir haben daraus einen automatischen screenshotuploader mit userverifizierung etc. gebaut. FTP wäre hier viel zu umständlich und wenig kontrollierbar gewesen.

                              Kommentar

                              Lädt...
                              X