Flex 3 - отправьте HTTP-запрос Get от Flash и хотите, чтобы Firefox показывал Open With Box - PullRequest
1 голос
/ 17 апреля 2009

Я новичок в разработке Flex и Flash. Вот что я пытаюсь сделать:

1) Отправьте HTTP-запрос на наш сервер (с пользовательским URL). URL в основном говорит серверу отправлять данные в формате CSV. 2) Сервер отправляет ответ 200 OK, который имеет Content-Type: application / csv, а полезная нагрузка - чистые данные CSV.

Что я хочу сделать, так это, когда Firefox получит ответ 200 OK, я хочу, чтобы он отображал стандартное окно Открыть с помощью (тот, который отображается при загрузке какого-либо файла).

Я попытался сделать это с помощью HTTPService. У меня есть кнопка «Экспорт в CSV» на компоненте Flash. После нажатия этой кнопки флэш-компонент может успешно отправить HTTP-запрос. Однако я не хочу, чтобы компонент Flash обрабатывал ответ, поэтому у меня нет определенного тега «result». Но ничего не происходит. Любые предложения о том, как это сделать.

Ответы [ 2 ]

0 голосов
/ 17 апреля 2009

Вашему серверу необходимо отправить заголовок вместе с файлом:

Content-Disposition: attachment; filename=foo.csv

Редактировать: поясним это с объяснением:

Когда вы делаете это:

navigateToURL(new URLRequest('foo.csv'), '_self');

Вы косвенно просите браузер получить файл foo.csv. Теперь, чтобы браузер отображал диалоговое окно «Сохранить», он должен знать, что данные должны рассматриваться как вложение. Заголовок:

Content-Disposition: attachment

выполняет только это. Но часто вы также хотите, чтобы браузер знал имя файла (и тип файла через расширение), поэтому вы добавляете бит имени файла после точки с запятой.

0 голосов
/ 17 апреля 2009

Вам потребуется Flash, чтобы хотя бы ответить на запрос, затем вы вызываете navigateToURL, чтобы перейти к вашему файлу, что-то вроде этого:

private function resultHandler(event:ResultEvent):void
{
    navigateToURL(new URLRequest('createdFile.csv','_self'));
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...