СПРАВОЧНАЯ ИНФОРМАЦИЯ:Отключить возможность открытия файла xls в Internet Explorer с сайта?
Я создал веб-приложение для клиента, которое позволяет им сохранять файлы excel на сервере.
Когда я впервые создал приложение, я сохранил эти файлы в папке uploads и привязал их непосредственно со страниц в приложении (например, File).
При отражении это было не очень безопасно, поэтому я изменил файл загрузчика, чтобы сохранить файлы выше корня веб-сайта и тем самым предотвратить прямой доступ.
Я доставляю файлы обратно пользователю с помощью файла php 'retriever' (например, File). Файл (после некоторых проверок аутентификации пользователей) выглядит следующим образом:
header("Content-type: application/octet-stream");
$_file = $_GET['filename'];
$sPattern = '/\s*/m';
$sReplace = '';
$_strippedfile = preg_replace($sPattern, $sReplace, $_file);
header("Content-Disposition: attachment; filename=".$_strippedfile."");
echo file_get_contents('/var/www/uploads/'.$_file);
ПРОБЛЕМА:
выше все работает отлично, если пользователь не выберет «открытым», а не «сохранить» в Internet Explorer. Excel пытается открыть файл и выбрасывает «... не удалось найти. Проверьте правильность написания имени файла и убедитесь, что местоположение файла верное ».
Я искал эту ошибку, и кажется, что она связана с длиной имени файла (включая путь). К сожалению, путь к временным интернет-файлам не входит в мой контроль, поэтому было интересно, есть ли способ заставить пользователя сохранить файл, а не открыть его? [По-видимому, это можно настроить локально, но a) мои клиенты не очень технические и b) потому что они находятся в корпоративной сети, все права администратора привязаны.]
Любые другие идеи приветствуются.
Я помню, что у меня были проблемы с пробелами в именах файлов и IE, и getg вокруг, заменив их на _underscores. –
Спасибо за быстрый ответ. Кажется, вы правы в отношении специальных персонажей, но интернет-исследователь, кажется, ставит их в себя !? Кажется, он сохраняет файл с дополнительными квадратными скобками, например. myfile [1] .xls в временных интернет-файлах, даже когда я очистил временную папку с интернет-файлами. Я тестировал с помощью firefox, и это сохраняется как myfile.xls. Bizarre. Есть идеи? – Derek