出于某种原因,并非所有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.";
}
}
答案 0 :(得分:0)
您正在将整个文件读入内存。如果用户尝试上传过大的文件,他们的浏览器将崩溃。你有这个原因吗?您是在客户端中使用字节还是只是将它们传递给服务器。如果要将它们传递给服务器,则不希望使用在selectXLS()中调用的fr.load方法。而是使用fr.upload并避免你的整个问题。