Forum: PC Hard- und Software Server für HTTP Post (File-erzeugung) konfigurieren


von topace (Gast)


Lesenswert?

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
von curl (Gast)


Lesenswert?

Nimm curl.

von topace (Gast)


Lesenswert?

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.

von Peter II (Gast)


Lesenswert?

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.

von Andreas S. (andreas) (Admin) Benutzerseite


Lesenswert?

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.

von curl (Gast)


Lesenswert?

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.

von topace (Gast)


Lesenswert?

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

von Läubi .. (laeubi) Benutzerseite


Lesenswert?

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
Noch kein Account? Hier anmelden.