Guten Abend, ich versuche seit einigen Tagen erfolglos, via Telnet ein HTTP-Post Kommando zu schreiben, welches mir auf meinem Server eine einfache Textdatei erstellt und diese mit dem angegebenen Inhalt füllt. Sehr wahrscheinlich muß man hierfür irgendetwas im Server selbst konfigurieren - das GET Kommando ist ja in der Regel vorgesehen und funktioniert tadellos, nur mit dem Erstellen von Dateien / schreiben von Daten in eine Datei scheint es nicht zu funktionieren. Weiß hier jemand Rat bzw. wäre bereit mir bei diesem Unterfangen behilflich zu sein? Ich würde mich sehr freuen, wenn mir jemand weiterhelfen kann und wäre auch bereit mich für die entstandene Mühe erkenntlich zu zeigen. meine Telnet-Session: (datei 1.txt existiert, kann public gelesen und geschrieben werden , doch auch mit "nicht vorhandenen Dateien" sieht man keine Änderungen auf dem Server..) ==================1. Versuch========================= POST /temp/1.txt HTTP/1.1 Host: portalnetz.eu Content-Disposition: form-data; name="uploadedfile"; filename="1.txt" Content-Type: text/plain Content-Length: 10 TEST12345 ----------- ergebnis:-------------------- HTTP/1.1 200 OK Date: Tue, 06 Nov 2012 20:43:01 GMT Server: Apache Last-Modified: Tue, 06 Nov 2012 19:47:04 GMT ETag: "8ee63d-2-4cdd8ddc2be00" Accept-Ranges: bytes Content-Length: 2 Connection: close Content-Type: text/plain; charset=iso-8859-1 XX ==================2. Versuch========================= POST /temp HTTP/1.1 Host: portalnetz.eu Content-Disposition: form-data; name="uploadedfile"; filename="1.txt" Content-Type: text/plain Content-Length: 10 TEST12345 ------------ergebnis------------------- HTTP/1.1 301 Moved Permanently Date: Tue, 06 Nov 2012 20:41:14 GMT Server: Apache Location: http://portalnetz.eu/temp/ Content-Length: 297 Connection: close Content-Type: text/html; charset=iso-8859-1
:
Verschoben durch Admin
Sinn dieser Übung ist, dies mit einem Modem auf einem embedded system zu bewerkstelligen - dort ist leider kein curl vorhanden, weshalb ich gern herausbekommen möchte, wie ich die Funktionalität mit einem "stink-normalen" http-request erreiche.
der Server selber erzeugt erstmal kar keine dateien, das muss dann schon ein script machen oder ein Framework. Du brauchst also ein passendes PHP, PERL oder ASP script auf dem Server was den Post eingegennimmt und dann eine Datei speichert.
Ganz so einfach geht es nicht. Wenn du Dateien per HTTP ändern willst brauchst du keinen Web- sondern einen WebDAV-Server. Der entsprechende Befehl heißt dann allerdings PUT.
topace schrieb: > Sinn dieser Übung ist, dies mit einem Modem auf einem embedded system zu > bewerkstelligen - dort ist leider kein curl vorhanden, weshalb ich gern > herausbekommen möchte, wie ich die Funktionalität mit einem > "stink-normalen" http-request erreiche. Dann schau dir an was curl macht.
Ich Danke Euch für die Informationen. PUT unterstützt mein Server (leider) nicht - insofern klingt die Idee mit dem PHP-Skript schon einmal sehr gut. (Tausend Dank für diesen Tipp@ Peter) nach ein wenig googeln und ungefähr einer Stunde Versuchen, stehe ich noch vor einem kleinen Verständnisproblem. Könntet ihr mir hier vielleicht noch einen Tipp geben? Mein Verständnis ist folgendes: ich erstelle ein skript - z.b. test.php mit folgendem Inhalt: <?php print "\nTEST Ausgabe!!\n"; move_uploaded_file($_FILES['datei']['tmp_name'], "test/datei.txt"); ?> dieses skript konnte ich bereits erfolgreich mit einem browser und folgender formular-html datei füttern: <form action="neu.php" method="post" enctype="multipart/form-data"> <input type="file" name="datei"><br> <input type="submit" value="Hochladen"> </form> was mir noch schleierhaft ist: 1) welche daten genau muß ich mit meinem Post-Befehl rübersenden, damit dies ebenso funktioniert? POST /neu.php HTTP/1.1 Host: portalnetz.eu Content-Disposition: form-data; file="tst"; submit="yes" Content-Type: text/plain Content-Length: 10 TEST12345 geht leider nicht.. - er bringt zwar eine ausgabe, jedoch wird kein file angelegt 2) wie genau gebe ich einen Dateinamen an, bzw. wie kann ich via skript einen "laufenden Dateinamen" erstellen lassen (z.b. Dateinamen "001.txt" für den ersten, "002.txt" für den zweiten upload usw..) ? @curl: verzeih mir mein unwissen - ich hatte kurz in die curl-doku reingeschaut und es als ein tool verstanden, was (irgendwie) direkt mit dem server kommuniziert - weiß nicht, wie ich damit html-anfragen anzeigen lassen kann. Vielen Dank im Voraus für eure Hilfe
topace schrieb: > welche daten genau muß ich mit meinem Post-Befehl rübersenden, > damit dies ebenso funktioniert? Schau es dir in FireBug im Netzwerktab an, für Dateitransfers wird ein spezielles Content Model benötigt, u.A. mußt du die Boundary angeben: http://www.w3.org/Protocols/rfc1341/7_2_Multipart.html http://www.w3.org/TR/html401/interact/forms.html#h-17.13.4.2
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.