Здравствуйте!
Задача следующая — необходимо организовать на сайте защищенный обмен файлами, т.е. отдавать на загрузку файлы определенной web группе. Решение я знаю только одно отдавать файлы через php скрипт. Если написать php скрипт что-то типа:
<?php
$realFilename='/home/test/public_html/test/test.swf'
header('Pragma:no-cache');
header('Content-Type: ' . 'application/x-shockwave-flash');
header('Last-Modified: ' . date('r', filemtime($realFilename)));
header("Accept-Ranges: bytes");
header('Content-Length: ' . filesize($realFilename));
header('Content-Disposition: attachment; filename="' . 'test.swf' . '"');
$fileHandle = fopen($realFilename, 'rb');
fpassthru($fileHandle);
fclose($fileHandle);
?>
все работает как и положено.
Добавил это код в сниппет. Сниппет вписал на страницу. У страницы отменил кеширование, поиск и «Местонахождение содержимого» поставил «Прикрепленное».
Стал пробовать — файлы качаются «битые».
Для начала я стал биться с правильными http заголовками так как document.parser.class.inc.php их переписывает. Поправил, но все равно файлы скачиваются некорректно.
Смотрю битый скаченный файл и сравниваю с оригиналом — файл начинает «расползаться» после символов [+ — знакомая комбинация символов:)
Размышляю дальше — Modx подключает множество файлов и любой перевод строки вне php кода тоже может испортить файл выдав в поток \n.
Собственно вопрос в следующем кто-нибудь делал подобную реализацию на modx?
Может я иду не в том направлении?
Установлена Modx Evolution 1.0.5