У меня есть некоторая неясная проблема, но я постараюсь изо всех сил объяснить.Excel пытается открыть файл для загрузки в IE
У нас есть URL-адреса, сопоставленные с использованием SpringMVC, так что при выполнении запроса POST можно запускать загрузку. Например, запрос
POST /request/bobby.html {POST variables:id=5}
запустит загрузку файла CSV, связанного с идентификатором 5. Вопрос заключается в том, что в IE, делая это дает вам возможность Open или Save As. Выбор Open откроет CSV-файл, как предусмотрено в MS Excel, но временный файл будет называться bobby.html. Когда пользователь оставляет Excel открытым и пытается загрузить другой идентификатор (скажем, 6), фокус изменится на Excel, но поскольку запрос все еще указывает на bobby.html, файл не обновляется. Вы должны закрыть файл в Excel, прежде чем новое одно имя сможет занять его место, но нет сообщения, чтобы сообщить пользователю закрыть старый файл.
В идеале, я хочу, чтобы имя файла изменилось, но используемый сервлет Spring специально предназначен для файлов * .html только потому, что у нас есть другие приложения, работающие в одном контейнере с другими расширениями.
Я попытался добавить UUID на просьбу просто чтобы выглядеть по-разному в Excel/IE, и он работал в какой-то степени ...
POST /request/bobby.html?uuid=<uuid> {POST variables:id=6}
сделал выглядеть по-разному в IE, но Excel еще содержал базовый запрос в качестве имени файла. Это позволило предупредить, но сообщив пользователю, что их имя файла «bobby.html», и они не могут открыть другой, может быть более запутанным, чем вообще не предупреждать.
Я также попытался добавить на что-то в конце:
POST /request/bobby.html/<uuid> {POST variables:id=6}
Любая идея, как сделать эту работу? Я знаю, что этот тип вещей возможен в SpringMVC, но с отображением сервлетов есть способ заставить его работать?
Заранее спасибо.
Это и варианты этого, похоже, не сработали. – Andy