Ich erstelle derzeit eine Funktion, die Dateien von Remote-Server herunterladen würde. Mein Skript funktioniert gut für alle Dateitypen, aber es funktioniert nicht für die msg-Dateien aus irgendeinem Grund (Es lädt leere Datei (0K)). Gleiches Verhalten in Chrome und IE übrigens. Ich dachte, das Problem ist mit der Dateigröße, so habe ich getestet, um große Zip-Datei herunterladen und es funktioniert auch gut, scheint, dass nur msg-Dateien, die ich habe, Problem mit.Wie msg-Datei mit PHP herunterladen
Mein Skript:
Was mache ich falsch?
P.S. Ich denke, mögliche Lösung ist zu archivieren (zip) MSG-Datei während des Hochladens und dann herunterladen Sie es als. ZIP statt, aber ich bin auf der Suche nach einer besseren Lösung.
keine Antwort, sondern ein Vorschlag für Ihren Skript: Sie sollten sanieren Ihre '$ _GET [ 'file_name']', jemanden zu vermeiden Sachen vorbei wie '../ passwd' –
Sie können die MSG-Datei vom Remote-Server von dem Server herunterladen, auf dem Ihr PHP-Skript mit anderen Mitteln als PHP läuft, z. mit 'wget http: // mypath/uploads/test.msg'? Ich habe dein Skript mit einer lokalen Datei getestet, z. '$ file_url = 'test.msg';', und das funktioniert hier, also vermute ich ein Problem, das vom Remote-Server kommt. Sie könnten auch den Rückgabewert von 'readfile' überprüfen - wenn es' false' ist, gibt es einen Fehler beim Lesen der Datei. –
Ich habe das Skript getestet, es lädt Remote 'msg' Datei. nginx + php 5.6. Sind Sie sicher, dass das Skript Zugriff auf die Datei hat? Was, wenn es der Server in 'mypath' ist, der' .msg' Dateien nicht gibt? –