Я работаю над созданием очень простого защищенного паролем «загрузчика файлов», который принудительно загружает файлы с удаленного сервера (mediafire) после ввода пароля. кажется на работу, но файл всегда поврежден, каждый раз, когда я пытаюсь открыть его, Windows говорит: «Windows не может открыть папку, сжатая (сжатая) папка« C: / users .. »недопустима».
Вот код для скрипта загрузки:
$yourfile ='http://www.mediafire.com/file/filelinkhere';
ob_start();
if(isset($_POST['submit'])) {
$password = $_POST['password']; // required
if ($password <> "somepasswordhere") {
echo "<script type='text/javascript'>alert('//error: incorrect password//')</script>";
header( "Refresh:0; url=https://www.home/transfer.php", true, 303);
} else {
$filename = basename($yourfile);
header('Content-Transfer-Encoding: binary');
header('Content-Type: application/zip');
header('Content-Disposition: attachment; filename="'.$filename.'"');
$size = filesize($yourfile);
header('Content-Length: '.$size.'');
readfile($yourfile);
exit;
}
}
Воспользовавшись советом из другого связанного вопроса о стеке, я убедился, что заголовок длины содержимого использует настоящую строку, потому что размер файла возвращает целое число. Кто-нибудь знает, почему загрузка все еще идет как поврежденная?
Задача ещё не решена.
Других решений пока нет …