Как установить имя файла для Content-Disposition: inline; файл на устройстве Android?

Приветствие.

Существует следующий набор заголовков, которые я использую для обработки файла, открываемого в окне браузера (обычно это PDF):

header("Content-Type: " . $mime[$ext]);
header("Content-Disposition: inline; filename=" . $path_parts["basename"]);
header("Content-length: $fsize");
header("Cache-control: private");

Этот код помещается в файл download.php, чтобы выполнить дополнительные действия перед тем, как файл будет передан клиенту. Где uri для файла задается как переменная get следующим образом:

http://sitedotcom/download.php?=file=path-to-file.pdf

А проблема в следующем. Рабочий стол открывает встроенный файл в окне браузера, но устройство Android загружает его и устанавливает имя файла для загрузки.php вместо пути к файлу.pdf. Это вызывает непонимание, и я ищу помощи.

Есть ли способ как-то настроить заголовок, чтобы файл получил правильное имя?


person Artem Shymko    schedule 07.01.2014    source источник


Ответы (1)


Возможно, вы можете использовать переписанный модуль apache следующим образом:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^pdf/([^/\.]+)$ download.php?file=$1 [L]
</IfModule>

Пользователь запросит:

http://sitedotcom/pdf/path-to-file.pdf

и PHP будет обрабатывать URL

http://sitedotcom/download.php?file=path-to-file.pdf

Поэтому, когда файл будет сохранен, он будет находиться в разделе «путь к файлу.pdf».

person Orden    schedule 19.01.2016