yanmai
Goto Top

C-Sharp Daten von PHP lokal speichern

Hallo ihr Administratoren,
ich möchte einen ZIP von einer PHP Datei lokl speichern. Mein PHP Script:

header("Cache-Control: public");  
		header("Content-Description: File Transfer");  
		header("Content-Disposition: attachment; filename=$targetPath");  
		header("Content-Type: application/zip");  
		header("Content-Transfer-Encoding: binary");  

		readFile($targetPath);
			$file_content =  file_get_contents($targetPath);
			echo $file_content;
				exit();

mein C# Script:

// Formuliert Serveranfrage
            var client = new RestClient("https://....com/test/");  
            var request = new RestRequest("server.php", Method.POST);  
            request.AddParameter("ac", "jdl");  
            request.AddParameter("id", user_id.ToString());  
            request.AddParameter("filename", Path.ChangeExtension(Daten, ".zip"));  
            byte response = client.DownloadData(request);

            // Speichert empfangene Serverdaten
            File.WriteAllBytes(Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments), "Server.zip"), response);  
            Directory.CreateDirectory(Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Desktop), "Testorder Server"));  
            ZipFile.ExtractToDirectory(Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments), "Server.zip"), Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Desktop), "Testorder Server"));  

An sich funktioniert der Download, aber die ZIP Datei ist auf dem Anwenderpc größer als auf dem Server (auch wenn ich mir den richtig runterlade, ist der so groß wie auf dem Server), was ich nicht verstehe. Und in der letzten Zeile tritt ein Fehler auf, dass er nicht richtig exportiert werden kann. Wo ist der Fehler?

Content-Key: 342801

Url: https://administrator.de/contentid/342801

Printed on: April 24, 2024 at 08:04 o'clock

Mitglied: 133417
133417 Jul 07, 2017 updated at 20:29:58 (UTC)
Goto Top
readFile($targetPath); 
echo $file_content; 
Doppelt gemoppelt ...
Erst die ZIP mit readfile ausgeben und dann nochmal das gleiche per echo?? Ist zwar Freitag aber da brauchst du dich nicht wirklich wundern wenn deine Zips größer werden als sie es tatsächlich sind ;-P, war wohl zu heiß heute face-wink.


Btw. die Variable $targetPath gibt's in deinem oben geliststen Code nicht.

Gruß
Member: Yanmai
Yanmai Jul 07, 2017 at 20:53:36 (UTC)
Goto Top
Vielen Dank für die Antwort, ja, im Kopf war ich noch im Sommerurlaub. Jetzt habe ich die PHP Datei so geändert, dass der ZIP nur einmal returned wird. Jetzt gibt es nur noch minimale Unterschiede in der Anzahl der Bytes (+-200). Kann man das so gelten lassen oder wie?
In der letzten Zeile des C#-Quelltextes bekomme ich diesen Fehler: Die am Ende des zentralen Verzeichnisses erwarteten Einträge entsprechen nicht der Anzahl der Einträge im zentralen Verzeichnis. Wo ist hier der Fehler?
Member: Yanmai
Yanmai Jul 10, 2017 updated at 19:35:43 (UTC)
Goto Top
Könnt ihr mir bitte helfen?