Öffnen, verändern, speichern von Dateien auf dem Server
chris
- programmiertechnik
hallo forum`ler,
habe ein problem.
ich habe mir ein macro programmiert, das aus einem editor heraus eine xml-datei von der adresse http://.../mydocument.xml vom server öffnet.
nun brauche ich ein macro, das dieses dokument nach erfolgten modifikationen im editor wieder auf dem server (http://.../mydocument.xml) zurückschreibt/speichert.
auf die platte kann ich speichern, nur auf die http-addresse nicht.
weiss jemand bescheid?
chris
Hi,
auf die platte kann ich speichern, nur auf die http-addresse nicht.
obwohl das HTT-Protokoll Schreibmechanismen vorgesehen hat, werden diese von kaum einem System unterstützt. Über HTTP hast Du da also praktisch keine Chance.
Es gibt genügend andere Protokolle, die Du statt dessen nutzen kannst[1]; allen voran FTP und Telnet. Suche Dir einfach das für Dich günstigste heraus.
Cheatah
[1] Vorausgesetzt natürlich, auf dem Zielsystem ist ein entsprechender Server installiert.
Hi Cheatah,
obwohl das HTT-Protokoll Schreibmechanismen vorgesehen hat, werden diese von kaum einem System unterstützt. Über HTTP hast Du da also praktisch keine Chance.
http://www.teamone.de/selfaktuell/forum/messages/116010.html
macht das schon. Nur eben nicht ganz so wie ich will.
Vielleicht faellt dir was dazu ein?
Gruss
rainer
Hi,
obwohl das HTT-Protokoll Schreibmechanismen vorgesehen hat, werden diese von kaum einem System unterstützt. Über HTTP hast Du da also praktisch keine Chance.
http://www.teamone.de/selfaktuell/forum/messages/116010.html
macht das schon.
ach so, Du arbeitest mit PHP schon auf dem Server, da hatte ich Dich mißverstanden. Ich dachte, Du würdest von Deinem heimischen System aus Macros ausführen.
Nur eben nicht ganz so wie ich will.
Vielleicht faellt dir was dazu ein?
So pauschal nicht, aber PHP kenne ich auch kaum. Warum fragst Du eigentlich nicht in o.g. Thread nach, wenn es da schon um das gleiche Thema geht?
Cheatah
Hi,
Warum fragst Du eigentlich nicht in o.g. Thread nach, wenn es da schon um das gleiche Thema geht?
weil dieser Thread nicht von Dir stammt. Schon gut, schon gut :-)
Cheatah
hi cheatah,
zunächst mal danke für deine antwort.
Es gibt genügend andere Protokolle, die Du statt dessen nutzen kannst[1]; allen voran FTP und Telnet. Suche Dir einfach das für Dich günstigste heraus.
das problem ist folgendes:
hier bei mir auf dem server liegen bestimmte dateien (eh klar).
ein kunde benutzt das programm xmetal von softquad (genau wie ich).
er soll letztlich statt der "normalen" öffnen und schließen buttons zwei makros zur verfügung haben, mit deren hilfe er dateien von unserem server her öffnet. (der gute mann arbeitet von zu hause aus).
das öffnen-makro läuft. die datei wird vom server geladen und im programm geöffnet.
der kunde verändert das doku nach seinen vorstellungen und speichert, indem er auf das speicher-makro klickt.
nun soll die datei auf dem server überschrieben werden.
(ohne telnet, oder explizitem zugriff auf ftp-programme).
danke dir
chris
Hi,
hier bei mir auf dem server liegen bestimmte dateien (eh klar).
"bei mir" heißt "im Internet", also (aus Benutzersicht) nicht lokal, oder?
ein kunde benutzt das programm xmetal von softquad (genau wie ich).
Kenne ich nicht, kann ich also nichts spezifisches zu sagen.
nun soll die datei auf dem server überschrieben werden.
(ohne telnet, oder explizitem zugriff auf ftp-programme).
Dann bleibt Dir noch, eine eigene CGI-Schnittstelle (o.ä.) zu schreiben. Das Macro übermittelt die geänderten Daten per POST an das Script, welches sie entgegennimmt und - tadaa - speichert. Basis könnte etwa folgendes sein:
#!/usr/bin/perl -w
use strict;
use CGI ':standard';
my $filename = '/complete/path/to/your/file.txt';
open(WRITE, ">$filename") or die "Kann $filename nicht oeffnen: $!";
print WRITE param('file');
close(WRITE) or die "Kann $filename nicht schliessen: $!";
(ungetestet)
Sicherheitsmechanismen o.ä. mußt Du nach Deinen Wünschen noch selbst einfügen.
Cheatah
Argh!
#!/usr/bin/perl -w
[...]
close(WRITE) or die "Kann $filename nicht schliessen: $!";
print header('text/plain'), 'Daten wurden aktualisiert.';
Es soll ja ein CGI-Script sein :-)
Cheatah
Hi Chris,
Du kannst natuerlich Deinen Webserver um die von cheatah erwaehnten HTTP-Write Funktionen erweitern. Der IIS ab der Version 4 unterstuetzt das meines Wissens nach bereits. Fuer den Apache
Webserver gibt es dafuer ein Modul: mod_dav. Dazu siehst Du am besten
mal bei: http://www.webdav.org vorbei.
Auf dem Client Rechner muessen diese Erweiterungen nun ebenfalls installiert werden. Diese sind aber im IE5.0 mit dabei.
Dazu muss dieser mit der Funktion "Webordner" installiert werden.
Dafuer gibt es auch einige How-To im Netz. Sollte also nicht das Problem sein.
Viele Gruesse
Tina