Autor |
Beitrag |
DecKeL
      
Beiträge: 22
Windows XP
D7, D4 - Professional
|
Verfasst: Di 18.12.07 16:10
Hallo Forum,
Ich will mit CopyFile eine Datei aus einer URL Kopieren.
Das Funzt aber nicht. Weiß jemand vielleicht warum die CopyFile Funktion das nicht kann, oder kennt jemand eine Funktion mit der das gehen könnte?
Hier mein Beispiel
Delphi-Quelltext 1:
| CopyFile('http://www.test.de/test/test.php', 'c:\test.php', TRUE); |
Beispiel 2:
Vielleicht kennt jemand die CopyFolder Funktion von euch, aber mit der Funktioniert es auch nciht.
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22:
| function TForm1.CopyFolder(aSource, aDest: String): Boolean; var FS: TSHFileopStruct; Begin FillChar (FS, SizeOf (FS), 0);
With FS Do Begin wFunc := FO_COPY; pFrom := PChar (aSource + #0); pTo := PChar (aDest + #0); End;
CopyFolder := SHFileOperation (FS) = 0;
end;
procedure TForm1.Button1Click(Sender: TObject); begin CopyFolder('http://www.Test.de/test/test.php', 'c:\test.php');
end; |
Bei Beispiel 2 kommt folgender Fehler: Datei kann nicht Kopiert werden: die Quelldatei oder vom Quelldatenträger kann nicht gelesen werden.
|
|
alias5000
      
Beiträge: 2145
WinXP Prof SP2, Ubuntu 9.04
C/C++(Code::Blocks, VS.NET),A51(Keil),Object Pascal(D2005PE, Turbo Delphi Explorer) C# (VS 2008 Express)
|
Verfasst: Di 18.12.07 16:40
Du könntest sowas via HTTP lösen. Stichworte dafür wären:
TIDHTTP GET. Das ist die Methode, um mit der Komponente TIdHTTP aus der Indy-Sammlung eine Datei vom Server abzufragen. Allerdings musst du bei php-Skripten aufpassen. Weil diese werden vor dem Aufruf ggf. noch interpretiert und damit erhälst du ggf. nicht die auf dem Server befindliche Datei.
Per FTP würdest du an das Original kommen, aber dafür brauchst du i.d.R. dann Zugangspasswörter, die natürlich nicht von fremden Servern bekommen wirst. Ich glaube nicht, dass es bei php-Skripten, die interpretiert werden, eine Möglichkeit gibt, an das Original zu kommen, aber ich möchte es nicht zu 100% ausschließen.
Gruß
alias5000
_________________ Programmers never die, they just GOSUB without RETURN
|
|
DecKeL 
      
Beiträge: 22
Windows XP
D7, D4 - Professional
|
Verfasst: Di 18.12.07 16:46
Das war nur ein Beispiel, ich will gar keine PHP-Skrit Runterladen, sonder ExeDateien, die da liegen.
Müsste das dann gehen, wenn der Pfad dann z.B so aussehn würde??
Quelltext 1:
| http://www.test.de/test/test.exe |
|
|
alias5000
      
Beiträge: 2145
WinXP Prof SP2, Ubuntu 9.04
C/C++(Code::Blocks, VS.NET),A51(Keil),Object Pascal(D2005PE, Turbo Delphi Explorer) C# (VS 2008 Express)
|
Verfasst: Di 18.12.07 16:47
jop, wenn die Zugriffsrechte dafür auf dem Server nicht verwehrt sind, geht das. Kannst du aber einfach testen, in dem zu diese URL einfach mal in deinen Browser eingibst.
Gruß
Marten
(und wenn das dein eigener Server ist, kannst du beim FTP eh den CHMOD festlegen)
_________________ Programmers never die, they just GOSUB without RETURN
|
|
DecKeL 
      
Beiträge: 22
Windows XP
D7, D4 - Professional
|
Verfasst: Di 18.12.07 16:49
sry, wenn ich nochmal so dumm frage, aber dann brauche ich die Indy-Komponente ja auch nicht?
Der hat das dann nur nicht gemacht, weil das eine *.php Skript/datei war, mit der ich das getestet habe???
|
|
alias5000
      
Beiträge: 2145
WinXP Prof SP2, Ubuntu 9.04
C/C++(Code::Blocks, VS.NET),A51(Keil),Object Pascal(D2005PE, Turbo Delphi Explorer) C# (VS 2008 Express)
|
Verfasst: Di 18.12.07 16:56
Ne, da hab ich mich ein wenig verkünstelt mit.
Um per HTTP die daten herunterzuladen hatte ich schon die Indys empfohlen (TIdHTTP).
Gruß
alias5000
_________________ Programmers never die, they just GOSUB without RETURN
|
|
DecKeL 
      
Beiträge: 22
Windows XP
D7, D4 - Professional
|
Verfasst: Di 18.12.07 17:00
ok, dann werde ich es mit der Komponente versuchen.
Danke für die schnellen ANtworten. ich schreibe, wenn ich das Problem Gelöst habe
|
|
DecKeL 
      
Beiträge: 22
Windows XP
D7, D4 - Professional
|
Verfasst: Di 18.12.07 23:07
wer hätte es auch andrs erwartet.
mit der Indy Kompnente geht das Prima. Danke!!!
|
|
|