上传Excel文档时出现问题。怎么了?

时间:2011-04-09 19:21:24

标签: flex excel

出于某种原因,并非所有Excel文档都可以从我的计算机上传。在一半的情况下从一块try-catch中得到错误“.. no !! error:”..出了什么问题?

        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 :(得分:0)

您正在将整个文件读入内存。如果用户尝试上传过大的文件,他们的浏览器将崩溃。你有这个原因吗?您是在客户端中使用字节还是只是将它们传递给服务器。如果要将它们传递给服务器,则不希望使用在selectXLS()中调用的fr.load方法。而是使用fr.upload并避免你的整个问题。