Ich habe ein Problem. Ich habe eine Webseite mit Upload-Dateien erstellt, ich habe eine Datenbank (MySQL) mit korrekter URL zu Datei (Dateipfad) (in der Datenbank ist nur die URL zur Datei, die Datei ist im Ordner auf dem Server). Und jetzt versuche ich PHP-Script zu schreiben/suchen, um diese Datei herunterzuladen, was hochgeladen wurde. Alles im Web funktioniert gut, aber diese Download-Skripte funktionieren nicht. Ich lese und ich denke, der beste Weg für mich wird mit 'Header' herunterladen, aber ich habe versucht und nichts. Die Datei wird auf unseren Datenträger heruntergeladen, der Name ist korrekt, die Dateierweiterung ist ok, die Datei ist im korrekten Programm geöffnet, aber wenn die Datei im Namen Zeichen (';', ':' usw.) hat, wird diese Datei ohne diese Zeichen heruntergeladen und ist falsch (Mangel an Erweiterung, schlechter Name). Und zweites Problem: Alle heruntergeladenen Dateien sind leer (0 b Größe), alles ist in Ordnung, aber sie sind leer, einige Tipps? Vielen Dank im Voraus für die HilfePHP- Force Download-Datei von URL
Mein schlechtes Download-Codes:
<?php
$data=date('Y-m-d_H:i:s');
$nazwa=$_POST['downtitle'];
$urlek=$_POST['downurl'];
$extrozsz=$_POST['downext'];
$filePath = $urlek;
$fileName = $nazwa.$data.".".$extrozsz;
//------------------------------------------------------------------------
// $fd = fopen($filePath,"r");
// $size = filesize($filePath);
// $contents = fread($fd, filesize($filePath));
// fclose($fd);
// header("Content-Type: application/octet-stream");
// header("Content-Length: $size;");
// header("Content-Disposition: attachment; filename=$fileName");
// echo $contents;
//----------------------------------------------------------------------
// set_time_limit(0);
// while($urlek = $response->fetch())
// {
// $my_pliki = file_get_contents("$urlek");
// $my_file = fopen("$urlek","w+");
// fwrite($my_file,$my_pliki);
// fclose($my_file);
// }
//----------------------------------------------------------------------------
$quoted = $filePath;
$size = filesize($file);
header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename=' . $quoted);
header('Content-Transfer-Encoding: binary');
header('Connection: Keep-Alive');
header('Expires: 0');
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header('Pragma: public');
header('Content-Length: ' . $size);
>
Ist dies eine Antwort auf Ihre eigene Frage oder eine Bearbeitung der ursprünglichen Frage? Sie scheinen Ihre Frage mit einer anderen Frage zu beantworten. Schlechte Übung. Es ist am besten, wenn Sie eine neue Frage zu fragen: 'Ich habe eine Frage ...' – Martin
Zustimmen. Sie haben jetzt 3 Fragen unter einer Überschrift, so dass jemand, der fähig und willens ist, niemals die letzten Fragen sehen wird. Sie können auch Vorschläge erhalten, während Sie Ihre Frage stellen –