Flex запускает файл pdf / doc, который загружается как ByteArray - PullRequest
2 голосов
/ 20 марта 2012

Я хочу открыть pdf / excel / doc с помощью flex, поскольку все знают, что мы можем использовать метод navigateToUrl (URL), чтобы открыть файл с сервера. Но моя проблема в том, что эти файлы зашифрованы на сервере, поэтому я загружаю файлы следующим образом

ByteLoader = new URLLoader();
ByteLoader.dataFormat = URLLoaderDataFormat.BINARY;
ByteLoader.load(new URLRequest (constructedURL));

чтобы я мог ими манипулировать и мог получить расшифрованный файл. Теперь мой вопрос: мои данные уже были загружены с сервера, так как мне запустить файлы (pdf / doc / excel) с двоичным содержимым, которое я получил?

Могу ли я в любом случае запустить эти файлы, как мы это делаем в navigateToURL ()?

1 Ответ

0 голосов
/ 20 марта 2012

У меня нет прямого ответа, это часто бывает, но я могу предложить одно альтернативное решение, которое вы можете использовать FileReference сохранить метод (поверьте, это Flash Player 10 и выше) , Тогда проблема заключается в открытии локально сохраненного файла, так как в соответствии с документацией имя заполняется только методами просмотра или загрузки, но не при сохранении, вы не сможете использовать имя (более того, я считаю, что это только имя файла не включая полный собственный путь, в котором он был сохранен, однако, вероятно, это стоит изучить). Если бы вы каким-то образом смогли получить собственный путь, по которому был сохранен файл, я бы подумал, что вы можете использовать navigateToURL (новый URLRequest ("file: ///")), чтобы получить его для открытия локального файла, я попробовал эта последняя часть с файлом, который я уже сохранил на жестком диске, и он работал:

        var fr:FileReference = new FileReference();
        fr.save("something worth saving", "somefile.txt");
        fr.addEventListener(Event.SELECT, function(event:Event):void
        {
            trace("something selected: " + event.target.name);
        });

        navigateToURL(new URLRequest("file:///C:/tmp0001-0160.avi"));

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

...