Как открыть файл диалогового окна из Zend AMF + AS3 - PullRequest
1 голос
/ 03 декабря 2010

Я хочу отправить запрос в мой Zend AMF, чтобы открыть диалоговое окно для загрузки файла.

Процесс:

Отправить запрос на Zend Server из моего приложения Flash,обработать результаты MYSQL с помощью PHP, затем отправить результат в браузер в виде файла загрузки (.csv) И результат true или false в приложение

У меня есть код, который отлично работает вне среды Zend,но, конечно, когда я иду, чтобы эхо / распечатать файл - он отправляет обратно на флэш-память, ничего не происходит.

Есть ли способ обойти это?

        $file = "";

        $outtype = "Content-type: application/octet-stream";
        header($outtype);

        $outtype = 'Content-disposition: attachment; filename="file.csv"';           
        header($outtype);

        $stmt->bind_result($id, $username, $email, $location);

        while($stmt -> fetch()){

            $file .= '"'.addslashes($col1).'"';
            $file .= ',"'.addslashes($col2).'"';
            $file .= ',"'.addslashes($col3).'"';
            $file .= "\n";

        }   

        print $file;
        exit;

Или я должен просто запросить это вне запроса Zend ...?

Пока что я изменил заголовки, чтобы использовать заголовки Zend:

        $this->setHeader('Content-Type', 'application/octet-stream');           
        $this->setHeader('Content-disposition:', 'attachment');
        $this->setHeader('filename:', 'file.csv');

Но я не уверен, как прикрепить файл $ к файлу 'file.csv', а затем вернуть результат true во Flash и загрузить файл .. (я боюсь, Зенд Нуб ..)

Ответы [ 2 ]

0 голосов
/ 04 декабря 2010

Процесс может быть следующим:

-1 Send a request to Zend Framework
-2 Query Mysql, process the result & write the file to the server
-3 Zip the file
-4 return the file url to Flash
-5 inform the user that the file is ready for download
-6 a user click calls navigateToURL from Flash, using the returned url

Поскольку это URL-адрес zip-файла, браузер должен открыть диалоговое окно.

В соответствии с этим отрывком из документов, кажется, что вашпараметры довольно ограничены, так как это не только проблема Flash ...

In Flash Player 10 and later running in a browser, using this method 
programmatically to open a pop-up window may not be successful. 
Various browsers (and browser configurations) may block pop-up windows 
at any time; it is not possible to guarantee any pop-up window will appear. 
However, for the best chance of success, use this method to open a 
pop-up window only in code that executes as a direct result 
of a user action (for example, in an event handler for a 
mouse click or key-press event.)
0 голосов
/ 03 декабря 2010

Вы используете Zend MVC? Если это так, убедитесь, что вы не рендеринг макета ....

Я не слишком доволен выходом; оператор ... так как Zend использует фреймворк MVC, он создает ответ и отображает его. Вызов сценария для выхода может означать, что содержимое отображается неправильно.

Кроме того, убедитесь, что вы используете правильные функции zend для построения заголовков, очень возможно, что zend добавляет конфликтующие заголовки к ответу. Смотри http://framework.zend.com/manual/en/zend.controller.response.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...