PHP скрипт загрузки не работает - PullRequest
0 голосов
/ 24 июля 2010

У меня есть скрипт, который загружает файлы в онлайн-каталог и сохраняет информацию о файле в базе данных. Файлы при сохранении переименовываются в id записи в базе данных. Всякий раз, когда пользователь запрашивает загрузку, простой оператор SQL извлекает сведения о файле из базы данных, содержимое файла считывается из базы данных, и файл запрашивается для загрузки. Вот мой код:

$one_file = $FILE_OBJECT->get($_GET['id']); // this is an object which just grabs the file details from the database


header("Content-type: ".$one_file['type']); // add here more headers for diff. extensions
header("Content-Disposition: attachment; filename=\"".$one_file["filename"]."\""); // use 'attachment' to force a download
header("Content-type: application/octet-stream");
header("Content-Disposition: filename=\"".$one_file["filename"]."\"");

readfile(_config('files_path').$_GET['id']);// reading the actual raw file stored in my online directory

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

Ответы [ 3 ]

2 голосов
/ 24 июля 2010

По умолчанию функция заголовка PHP заменит предыдущие заголовки с тем же именем, поэтому ваши первые два заголовка заменяются вторыми двумя.Удалите вторые два и посмотрите, сработает ли это.

1 голос
/ 24 июля 2010

Посмотрите, поможет ли это:

Файл Webkit и Excel (PHPexcel)

0 голосов
/ 06 октября 2010

У меня была та же самая проблема: каждый раз, когда я загружал файл, он якобы был "поврежден". Оказывается, я сделал глупую ошибку пути к каталогу, но ошибка php записывалась в загруженный файл. Что, конечно, сделало его «испорченным».

На самом деле я решил, прочитав комментарий Яна Ветерби о тестировании с помощью простого текстового файла. Спасибо, Ян!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...