не могу разобраться в чем дело.
ситуация такая, есть сайт, работает на МОДЭКС, система скачивания файлов там организованна через скрипт, по которому имя файла отдается при начале скачивания.
после закачки расширение файлов как правило теряется. точнее получается так:
ссылка на скачивание
<a href="download.php?file=files/message_files/55a886d6ae4880.71387000 1437107926.docx">
имя файла хранится в БД (Телефонограмма по акту выполненных работ). после закачки получаем файл «Телефонограмма» и все. без расширения и продолжения имени файла
проверено в Хроме, такой проблемы нет. Хром адекватно берет имя файла и садит загружаемый файл с полным именем и расширением, т.е. как положено.
содержимое файла manager/download.php
<?php
require_once('../api/Messages.php');
error_reporting(E_ALL);
ini_set("display_errors", 1);
$file = $_GET['file'];
if($file && file_exists('../'.$file)) file_force_download('../'.$file);
function file_force_download($file) {
$Messages = new Messages();
if (file_exists($file)) {
if (ob_get_level()) {
ob_end_clean();
}
$filename = basename($file);
$get_file = $Messages->get_file(array('file_name' => $filename));
if($get_file) $filename = $get_file->name;
header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename=' . $filename);
header('Content-Transfer-Encoding: binary');
header('Expires: 0');
header('Cache-Control: must-revalidate');
header('Pragma: public');
header('Content-Length: ' . filesize($file));
if ($fd = fopen($file, 'rb')) {
while (!feof($fd)) {
print fread($fd, 1024);
}
fclose($fd);
}
exit;
}
}
на лицо неперерытая функция file_force_download, каких либо изменений я не вижу в коде…
сервер не выдает никаких ошибок, якобы вся процедура проходит нормально. где копать? и что можно изменить?
заранее благодарен за помощь
Воеводский Михаил 28.07.2015 09:24 #
Проверяйте, получает ли Мозилла корректный заголовок.
Анатолий 28.07.2015 11:12 #
определеяет его как application/octet-stream
Воеводский Михаил 28.07.2015 11:39 #
Анатолий 28.07.2015 14:26 #
Хром
Воеводский Михаил 28.07.2015 17:16 #
Анатолий 28.07.2015 19:11 #
скажите, а как это теперь подкорректировать? где копать?
Анатолий 28.07.2015 21:46 #
никак не могу понять почему
Воеводский Михаил 29.07.2015 11:21 #
Ищите решение в инете, не привязываясь к MODX — проблема более общая.
Анатолий 04.08.2015 19:03 #