Задача вот какая. Есть SQL-база, в которой храняться сведения о файлах. Если файл есть, то пользователю отдается он самый. Если его нет то должен быть отправлен файл с тем же именем, что и искомый, но с другим расширением и содержащие в себе причины отказа. Сначала я пробовал все это устроить с помощью header("HTTP/1.1 302 Found"); посылкой по редиректу. Тут же создается временный файл, куда записывается причина отказа, и клиент получает птицу-обломинго. Но после этого надо удалять временный файл, а это, во-первых, лениво, а во-вторых, сразу за header(Location:...) unlink сделать нельзя, клиент получит ошибку 404 (типа файл раньше удалился, чем был отправлен, и временные задержки не помогают). Потом меня надоумили на такое: Код (Text): header("Content-Type: application/x-force-download"); header("content-disposition: attachment; filename="$name_to_download"); print $msg; Казалось бы, радуйся и прыгай до потолка, но качалка wget (она будет использоваться пользователями) не распознает $name_to_download, а сохраняет файл как script.php?want=$name_to_download Как можно выкрутиться с этой ситуации?
Мод реврайт тебя спасет. Перенаправляй все файлы с определенным расширением на обработчик который будет генерить отмазы
winterheart я делаю так: header('Content-type: application/octet-stream '); header('Content-Disposition: attachment; filename="'.$M->name.'"'); имя в кавычках
Спасибо, не помогло -_-. Дело в том, как я понял, что wget использует до сих пор HTTP/1.0, и не понимает header("content-disposition: attachment; filename=...");, так что придется пойти другим путем. Всем спасибо!