2015-07-26 3 views
-1

Здравствуйте, В настоящее время я работаю над инструментом, который преобразует хранимый текстовый массив на основе файлов (на самом деле неважно, чем он это делает). Он отлично работает, и я могу загрузить и использовать его, если я загружаю файл с FTP, но когда я пытаюсь напрямую загрузить его человеку, использующему файл .php, он говорит «Недопустимый файл». Мой текущий код:Загрузка файла SQlite .db

 header('Content-Type: application/octet-stream'); 
     header("Content-Length: " . filesize($dbname)); 
     header('Content-Disposition: attachment; filename="object database.db"'); 
     readfile($dbname); 

В чем проблема? Является ли контент-тип или что-то еще неправильным? Или я должен использовать readfile (я пробовал это?)

Когда я загружаю с указанным выше кодом, имя файла кажется правильным или любым, но когда я пытаюсь открыть его с помощью браузера SQLite3 (он работает, когда Я загружаюсь непосредственно с FTP) программа отображает «Недопустимый формат файла». Когда я использую readfile, он загружается как «загрузка» без расширения файла, и когда я пытаюсь открыть окна, вы указываете «Недопустимый файл». Любая помощь была бы потрясающей.

ответ

0

Нет application/db Тип контента. Вместо этого вы должны использовать application/octet-stream. Также filename в Content-Disposition - это просто имя файла, которое вы предлагаете клиенту для сохранения файла как, но не более того, поэтому вам еще нужно отправить содержимое файла самому удаленному узлу.

readfile(....); 
die(); 

должны делать свою работу, если ваши данные хранятся в уже файле, в противном случае вы можете просто echo() это вместо него.

+0

Код (проверьте главный пост, я его обновил) все еще, кажется, дает неверный формат файла. Любая дополнительная помощь? Следует также отметить, что переменная $ dbname сохраняет путь к файлу. Похоже, что в chrome путь загрузки, по-видимому, является путем файла index.php, когда файл, который я пытаюсь загрузить, находится в ./tempdbs, который находится фактически в каталоге, но сам по себе отдельный каталог. –

Смежные вопросы