Проблема с загрузкой Excel-документа. В чем дело? - PullRequest
0 голосов
/ 09 апреля 2011

Почему-то не все Excel-документы можно загрузить с моего компьютера. В половине случаев выдается ошибка «.. нет !! ошибка:» из блока try-catch .. Что не так?

        private function importXLS(e:MouseEvent):void {
            fr = new FileReference();
            var fileFilter:FileFilter = new FileFilter("Excel (.xls)", "*.xls");
            fr.addEventListener(Event.SELECT,selectXLS);
            fr.browse([fileFilter]);
            statusLabel.text = "selecting...";
        }

        private function selectXLS(e:Event):void {
            fr = FileReference(e.target);
            fr.addEventListener(Event.COMPLETE, fileIn);
            fr.load();
            statusLabel.text = "loading...";
        }

        private function fileIn(e:Event):void {
            ba = new ByteArray();
            ba = fr.data;

            xls = new ExcelFile();

            var flag:Boolean = false;
            try{
                xls.loadFromByteArray(ba);
                flag = true;
            }catch(error:Error){
                Alert.show("no!! error: " + error.getStackTrace());
            }
            if (flag == true) {
                statusLabel.text = "XlS loaded.";
            } else {
                statusLabel.text = "XlS didn't load.";
            }

        }

1 Ответ

0 голосов
/ 22 апреля 2011

Вы читаете весь файл в память.Если пользователь попытается загрузить слишком большой файл, его браузер потерпит крах.Есть ли причина, по которой вы это делаете?Используете ли вы байты в клиенте или просто передаете их на сервер.Если вы передаете их на сервер, вы просто не должны использовать метод fr.load, который вы вызываете в selectXLS ().Вместо этого используйте fr.upload и избегайте всей проблемы.

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