Если у меня есть строка в JavaScript в памяти, скажем, в формате Excel или PDF, и я хочу открыть диалоговое окно сохранения, чтобы пользователь мог сохранить эти байты в файл, как мне поступить?Я стараюсь не возвращаться на сервер.Если я возвращаюсь на сервер, я могу отправить правильные заголовки HTTP в ответ, чтобы сообщить браузеру, что я отправляю файл.Но я хочу сделать это из JavaScript, потому что у меня уже есть байты, которые мне нужны на клиенте.
Возможно ли это?
Редактировать:
Я должен уточнить, что я на самом делеищу здесь.Я работаю с приложением Silverlight.Из Silverlight я могу открыть диалоговое окно сохранения и сохранить байты (в данном случае, скажем, это байты Excel).Похоже, это то, что люди предлагают ниже, когда они предлагают использовать Flash.Silverlight предоставляет те же функции.
Но я бы предпочел, чтобы файл Excel открывался только в новом окне браузера.Я мог бы сделать это довольно легко, если бы я генерировал файл на сервере, потому что я мог просто отправить правильные заголовки.Но у меня уже есть байты в Silverlight на клиенте.Есть ли способ открыть этот документ в новом окне браузера, чтобы пользователь мог просто нажать кнопку «Открыть», не выбрав место сохранения и не перейдя к файлу?
И я не могу использовать внеопция приложения браузера.Я знаю, что было бы возможно использовать это, разговаривая с Excel через COM-взаимодействие.Но в этом случае не стоит.
Но я могу взаимодействовать с JavaScript из Silverlight.Поэтому я надеялся, что смогу каким-то образом использовать JavaScript, чтобы открыть окно браузера и передать в него байты Excel.