У меня проблема. Я создал веб-страницу с загрузкой файлов, у меня есть база данных (MySQL) с правильным URL-адресом для файла (путь к файлу) (в базе данных только URL-адрес файла, файл находится в папке на сервере). И теперь я пытаюсь написать/искать php-скрипт, чтобы загрузить этот файл, что было загружено. Все в сети работает хорошо, но эти сценарии загрузки не работают. Я читаю, и я думаю, что лучший способ для меня будет загружаться с помощью «заголовка», но я пытался и ничего не делал. Файл загружается на наш диск, имя правильно, расширение файла ok, файл открыт в правильной программе, но если файл имеет в имени символы (';', ':' и т. Д.), Файл загружается без этих символов и является неправильным (отсутствие расширения, плохое имя). И вторая проблема: все загруженные файлы пустые (размер 0 b), все в порядке, но они пустые, некоторые подсказки? Заранее спасибо за помощьPHP-Force скачать файл с URL-адреса
Мои плохие скачать коды:
<?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);
>
Это ответ на ваш собственный вопрос или редактирование исходного вопроса? Кажется, вы отвечаете на свой вопрос другим вопросом. Плохая практика. Лучше, если вы зададите новый вопрос: «У меня есть один вопрос ...» – Martin
Согласен. Теперь у вас есть 3 вопроса под одним заголовком, поэтому кто-то, кто может и хочет, никогда не увидит последние вопросы. Кроме того, вы можете получить предложенные ответы, когда вы зададите свой вопрос. –