flex上传excel文件到服务器上
来源:互联网 发布:刺客信条起源 知乎 编辑:程序博客网 时间:2024/04/28 08:06
要先写个服务器解析excel的selevt文件,解析成XML文件,在通过XML文件显示在界面上
public class upload extends HttpServlet {
private static final long serialVersionUID = 1L;
public upload(){
super();
}
protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException{
try{
request.setCharacterEncoding("utf-8");
//response.setContentType("text/xml;charset=utf-8");
response.setContentType("text/xml;charset=utf-8");
PrintWriter out=response.getWriter();
// 创建基于磁盘的文件工厂
DiskFileItemFactory factory = new DiskFileItemFactory();
// 设置直接存储文件的极限大小,一旦超过则写入临时文件以节约内存。默认为 1024 字节
factory.setSizeThreshold( 1024 * 1024 );
// 创建上传处理器,可以处理从单个 HTML 上传的多个上传文件。
ServletFileUpload upload = new ServletFileUpload(factory);
// 最大允许上传的文件大小
upload.setSizeMax( 1024 * 1024 );
// 处理上传
List fileItems = upload.parseRequest(request);
Iterator iter = fileItems.iterator();
for(;iter.hasNext();){
FileItem fileItem=(FileItem)iter.next();
if(fileItem.isFormField()){
//out.println( "form field : " + fileItem.getFieldName() + ", " + fileItem.getString() );
System.out.println("当前是表单项");
}else{
// 当前是一个上传的文件
String fileName = fileItem.getName();
System.out.println(fileName);
File tempFile=File.createTempFile(fileName,"xls");
fileItem.write( tempFile );
//fileItem.write( new File( "d:/temp.xls"));
PoiFunction readExcel = new PoiFunction(tempFile);
try{
readExcel.open();
int rowCount=readExcel.getRowCount();
StringBuffer sb= new StringBuffer("<records>");
if (readExcel.readExcelLine(0) !=null){
sb.append("<row>");
String[] rows = readExcel.readExcelLine(0);
for (int j = 0; j < rows.length; j++) {
sb.append("<col"+(j+1)+">"+rows[j] + "</col"+(j+1)+">");
}
sb.append("</row>");
}
for(int i=1;i<rowCount;i++){
if (readExcel.readExcelLine(i) ==null) break;
sb.append("<row no=/""+(i-1)+"/">");
String[] rows = readExcel.readExcelLine(i);
for (int j = 0; j < rows.length; j++) {
sb.append("<col"+(j+1)+">"+rows[j] + "</col"+(j+1)+">");
}
sb.append("</row>");
System.out.println(sb.toString());
}
sb.append("</records>");
out.print(sb.toString());
}catch(IOException e){
e.printStackTrace();
out.print("<poiError>文件格式错误,请检查</poiError>");
}
}
}
}catch (Throwable t){
t.printStackTrace();
}
}
}
在FLEX中开发
先注册事件
private static const UPLOAD_URL:String = ForwarderModel.getInstance().serverUrl+"/common/upload";
//使用/common/uploadexcel 路径,对应 uploadexcel Servlet来处理。
[Bindable]
public var resultXml:XML;
public function onBrowse():void {
req = new URLRequest();
req.url = UPLOAD_URL;
file = new FileReference();
file.addEventListener(Event.SELECT, onSelect);
file.addEventListener(ProgressEvent.PROGRESS, onProgress);
file.addEventListener(Event.COMPLETE, onComplete);
file.addEventListener(DataEvent.UPLOAD_COMPLETE_DATA, onDone);
file.browse();
//file.browse([filter]);
}
private function onSelect(event:Event):void {
this.visible=true;
var file:FileReference = FileReference(event.target);
file.upload(req, "file");
//file.upload(req,"file");
this.indeterminate = true;
}
private function onProgress(event:ProgressEvent):void {
this.label = "文件上传中...";
this.minimum = 0;
this.maximum = event.bytesTotal;
this.setProgress(event.bytesLoaded, event.bytesTotal);
}
private function onComplete(event:Event):void {
this.label = "文件处理中...";
this.indeterminate = true;
}
private function onDone(event:DataEvent):void {
this.label = "文件加载完成!";
this.indeterminate = false;
this.visible=false;
try{
resultXml=XML(event.data);
}catch (e:Error){
Alert.show(event.data,"error");
return;
}
_callback(resultXml);
}
- flex上传excel文件到服务器上
- 上传excel文件到服务器
- 调用服务器上Excel.dll文件,读取上传到服务器的Excel文件结构.
- WinForm 上传文件到服务器上
- 上传指定文件到ftp服务器上
- 上传文件到其它服务器上
- mac上传文件到linux服务器上
- 上传文件到http服务器上
- windows如何上传到文件linux服务器上-Sftp上传
- goAhead上实现文件上传到嵌入式web服务器上
- goAhead上实现文件上传到嵌入式web服务器上
- goAhead上实现文件上传到嵌入式web服务器上
- 上传excel文件存到服务器并且读取sheet
- Flex上传文件到action
- 上传文件到服务器
- 上传文件到服务器
- 上传文件到服务器
- 上传文件到服务器
- Microchip PIC24F dsPIC33E flash 自擦写的尿性小结
- 针对中小安卓项目团队合作开发的GIT规范
- vmware nat模式配置
- ELDD读书笔记:第七章 输入设备驱动程序
- 进程的描述与控制 进程的状态和转换 三态模型和五态模型
- flex上传excel文件到服务器上
- 图片轮播,淡入淡出(js,css)
- java基础—Java里面的Threadlocal
- MSP430的ADC转化+均值滤波
- BZOJ1128: [POI2008]Lam
- C++全局变量的声明和定义
- 推送之信鸽推送详解 Think Different
- 修改时区(不同发布版)
- apt-get/pip/wget速度慢?花式加速apt-get/pip/wget下载