Intereting Posts
Как получить уникальные значения из столбца и сгруппировать их со значениями из другого столбца? MySQL – Как получить результаты поиска с точной релевантностью не может получить НЕКОТОРЫЕ переменные сеанса на разных страницах symfony: Как разместить экран на ошибке формы? Как заменить несколько символов одинаковым количеством символов регулярным выражением? Добавление настраиваемого поля в регистрационную форму joomla 3.1.1 по умолчанию Оболочка для Symfony Переупорядочить XML-узлы с помощью php и simplexml Обновление Ajax на div с идентификатором Разделитель не должен быть буквенно-цифровым или обратным слэшем, а preg_match Не удалось загрузить Zend / Loader.php. Попытка разобраться, почему? PHP Framework с полной интеграцией jQuery? Добавление кнопки закрытия в div для закрытия окна как реализовать поиск двух разных табличных данных? Размер изображения в структуре yii

Только для загрузки только в браузере, не запрашивается загрузка

Я не могу понять это, и я знаю, что это просто. Я создаю back-end для очень простой системы управления контентом. Для этой конкретной части я просто пытаюсь создать ссылку PHP, которая позволяет загрузить файл (CV клиента).

МОЯ ПРОБЛЕМА:

Когда щелкнули ссылку для загрузки файла, вместо браузера, предложившего вам выбрать локальный каталог для сохранения файла – он просто отображает файл и кучу символов до и после содержимого документа (я предполагаю, что это файл открытия и закрытия exif-данных для приложения для расшифровки).

Как я могу заставить браузер запрашивать у пользователя «Сохранить как …»?

<?php require("connect.php"); $query = "SELECT * FROM kb_info LIMIT 1"; $result = mysql_query($query, $link); while ($row = mysql_fetch_array($result)) { $file_extension = end(explode(".", $row["extension"])); if ($file_extension == doc) { header('Content-disposition: attachment; filename='.$row["extension"]); header('Content-type: application/doc'); header ("Content-Length: ".filesize($row["extension"])); readfile($row["extension"]); exit; } if ($file_extension == docx) { header('Content-disposition: attachment; filename='.$row["extension"]); header('Content-type: application/docx'); header ("Content-Length: ".filesize($row["extension"])); readfile($row["extension"]); exit; } if ($file_extension == pdf) { header('Content-disposition: attachment; filename='.$row["extension"]); header('Content-type: application/pdf'); header ("Content-Length: ".filesize($row["extension"])); readfile($row["extension"]); exit; } } ?> 

Большое спасибо,

Joshie

Я думаю, проблема может заключаться в том, что в файлах PHP есть какие-то пробелы, из-за чего заголовки не отправляются правильно, и поэтому вы видите весь вывод.

Я бы предложил следующие шаги:

  1. проверьте «connect.php» и найдите пустые строки / пробелы в начале / конце файла и удалите их

  2. адаптируйте ваши php-файлы таким образом, чтобы вы не оставили конечный тег ?> в конце файла – таким образом вы не получите пустые строки в конце файла

  3. если выше этого недостаточно, вам нужно проверить свой журнал ошибок apache и php и / или настроить регистрацию ошибок, так что вы также увидите предупреждения: вам будет сообщено, правильно ли отправлены заголовки или какая-либо другая ошибка

Заголовки, которые я использую для загрузки:

  header("Pragma: public"); header("Expires: 0"); header("Cache-Control: must-revalidate, post-check=0, pre-check=0"); header("Cache-Control: public"); header("Content-Description: File Transfer"); header("Content-type: application/force-download"); header("Content-Disposition: attachment; filename=".$file); header("Content-Type: application/octet-stream"); header("Content-Transfer-Encoding: binary"); header("Content-Length: ".$bytes."");