Entwickler-Ecke
Internet / Netzwerk - Upload einer Datei mittels http?
Saladin - Do 18.07.02 12:06
Titel: Upload einer Datei mittels http?
Also ich will eine Datei mittels http (ähnlich Javascript) an ein Script im
Netz übergeben. Ich kann keine FTP Verbindung oder dergleichen öffnen, da nur der Http Port frei verfügbar ist.
Mit Javascript wird die Datei auf den Server geladen(Temp Verzeichnis) und dort dann vom Script entweder bearbeitet, indem es z.B. irgendwohin anders kopiert wird, oder sonstiges damit angestellt.
Hat jemand ne IDEE?
MfG
Saladin
p.s. Handelt sich nicht um einen Trojaner!!!!!!
DeCodeGuru - Do 18.07.02 13:13
Du könntest eine Script auf dem Server aufrufen und dem dann die Parameter von der Datei übergeben. Ich galube aber nicht, dass das funktioniert, weil das Script ja keinen Plattenzugriff auf der Festplatte hat, um dort eine Datei zu laden. Naja, wer weiss, obs geht. War ja nur ne Idee :mrgreen:
Saladin - Do 18.07.02 13:42
Titel: Da hast du Recht
Das wird wohl nicht klappen! Aber troztdem danke!!
:?
MfG
Saladin
Savage - Do 18.07.02 14:36
Wenn du über HTTP senden möchtest, kannst du auch eine ClientSocket - Kompo verwenden. Du musst dich halt nur mit den Clienten richtig beim WebServer einlogen (richtige Adresse und Port verwenden) bzw. einen Proxy ansteuern.
Du musst dich allerdings etwas mit der HTTP Syntax auskennen bzw. dir diesen Syntax etwas aneignen.
Im HTTP header, der immer gesendet wird, gibt es Befehle wie POST, GET,..., der dem Server darauf vorbereitet, dass du eine File senden möchtest bzw etwas haben willst.
Zur Not kannst du dir ja auch mal anschauen, was der IE oder Netscape so zum Server senden, dadurch erkennst du ersteinmal die Strucktur des Headers und kannst einige Teile davon verwenden, um deine File korrekt übers HTTP zu senden.
Viel Glück
mfg
Savage
Saladin - Do 18.07.02 16:11
Oh danke!
ganau den Hinweis habe ich gesucht.
Werde mich mal darum kümmern in den nächsten Tagen!
Also dann an die Arbeit!
MfG
Saladin
M4EiB - Fr 19.07.02 01:53
du kannsts es dir noch einfacher machen, indem du anstatt den clientsocket-komponenten gleich die indy-http-komponente benutzt. bei der nmhttp-komponente kann man glaub ich nur einen string posten und die ganze datei in einen string laden, lieber nicht.
nur noch ne frage: ist das script auf dem server von dir, oder von nem anderen(z.b. upload script bei nem webspace-service oder so?)
Saladin - Fr 19.07.02 08:31
Titel: Von mir
Das Script ist von mir. Mein Programm lädt Bilder auf ein vorher definierte Website hoch (Die vom User), und soll so eine Art "Meine Bilder" im Web für Dummis werden.
Du wählst die Bilder aus die du haben willst, und schickst diese dann direkt auf deine Website. Ohne weiteres Umständliches FTP oder blöde Web Uploads machen zu müssen!
Du musst nur einmal das Script auf deine Website setzen und dir die URL merken, um Sie im Programm anzugeben.
Aber es ist natürlich möglich das Programm so umzuschreiben, das
es das upload script bei nem anderen bedienen kann.
MfG
Saladin
M4EiB - Fr 19.07.02 16:23
also hier mal ein quellcode-beispiel, wie der upload aussehen sollte(wurde aber nicht getestet!!).
ist das gleiche wie ein upload per ie, kannst ein scipt also standartmässig schreiben.
filename ist der pfad der datei
url die url zum script
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59: 60: 61: 62: 63: 64: 65: 66:
| var filest:tfilestream; post:tstringstream; tag,s:string; buffer:tstringstream; http:tidhttp; begin
http:=tidhttp.create(nil); buffer:=tstringstream.create(''); post:=tstringstream.create(''); filest := tfilestream.create(filename,fmOpenRead,fmShareDenyNone);
tag := '7d292f3201ec';
s:=s+'-----------------------------'+tag+#13#10; s:=s+'Content-Disposition: form-data; name="varname"'+#13#10+#13#10;
s:=s+'inhalt'+#13#10;
s:=s+'-----------------------------'+tag+#13#10; s:=s+'Content-Disposition: form-data; name="namepic"; filename='+filename+#13#10; s:=s+'Content-Type: application/octet-stream'+#13#10+#13#10;
post.writestring(s); post.copyfrom(filest,0);
s:='-----------------------------'+tag+'--'+#13#10#13#10; post.writestring(s);
http.request.ContentType := 'multipart/form-data; boundary=---------------------------'+tag; http.request.Contentlength := post.size;
try http.post(url,post,buffer) except end;
http.free; buffer.free; post.free; filest.free;
end; |
Moderiert von Klabautermann: Code- durch Delphi-Tags ersetzt
Saladin - Fr 19.07.02 18:21
Titel: OK
Ein herzliches Dankeschön schon mal von mir, auch wenn es nicht klappen sollte (was ich nicht glaube). :lol:
MfG
Saladin
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2024 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!