Extjs文件上传

简介:

1、将文件上传到FileLoadServlet处理

 
  1. Ext.onReady(function() { 
  2.     var form = new Ext.form.FormPanel({ 
  3.         labelAlign : 'right', 
  4.         title : 'form', 
  5.         labelWidth : 50, 
  6.         buttonAlign : 'center', 
  7.         frame : true, 
  8.         fileUpload : true, 
  9.         url : 'FileLoadServlet', 
  10.         width : 280, 
  11.  
  12.         items : [ { 
  13.             xtype : 'textfield', 
  14.             fieldLabel : '文本框', 
  15.             name : 'file', 
  16.             inputType : 'file' 
  17.         } ], 
  18.         buttons : [ { 
  19.             text : '提交', 
  20.             handler : function() { 
  21.                 form.getForm().submit({ 
  22.                     success : function(form, action) { 
  23.                         Ext.Msg.alert('信息', action.result.msg); 
  24.                     }, 
  25.                     failure : function() { 
  26.                         Ext.Msg.alert('错误', '失败'); 
  27.                     } 
  28.                 }); 
  29.             } 
  30.         } ] 
  31.     }); 
  32.     form.render("form"); 
  33.  
  34. }); 

2、servlet类处理

(1)web.xml

 
  1. <servlet> 
  2.     <servlet-name>FileLoadServlet</servlet-name> 
  3.     <servlet-class>com.alibaba.upload.FileLoadServlet</servlet-class> 
  4. </servlet> 
  5. <servlet-mapping> 
  6.     <servlet-name>FileLoadServlet</servlet-name> 
  7.     <url-pattern>/FileLoadServlet</url-pattern> 
  8. </servlet-mapping> 

(2)具体的类处理

 
  1. FileItemFactory factory = new DiskFileItemFactory(); 
  2.    ServletFileUpload fileload = new ServletFileUpload(factory); 
  3.  
  4.    fileload.setSizeMax(4194304); 
  5.    try { 
  6.  
  7.        List<FileItem> fileItems = (List<FileItem>) fileload.parseRequest(request); 
  8.        Iterator<FileItem> iter = fileItems.iterator(); // 依次处理每个上传的文件 
  9.  
  10.        while (iter.hasNext()) { 
  11.            FileItem item = (FileItem) iter.next();// 忽略其他不是文件域的所有表单信息 
  12.            if (!item.isFormField()) { 
  13.                String name = item.getName();//获取上传文件名,包括路径 
  14.                System.out.println(name); 
  15.  
  16.                if (name != null) { 
  17.  
  18.                    File filetoserver = new File("D:\\", name); 
  19.  
  20.                    item.write(filetoserver); 
  21.  
  22.                    System.out.println("文件:" + name + "上传成功,大小是" + item.getSize()); 
  23.  
  24.                } 
  25.            } 
  26.        } 
  27.    } catch (Exception e) { 
  28.    } 
  29.    response.getWriter().print("{success:true,msg:'上传成功'}"); 

【注意】

1、需要加入fileupload包,由于其使用的common-io包,同时也需要加入其中。

 


本文转自 tianya23 51CTO博客,原文链接:http://blog.51cto.com/tianya23/815163,如需转载请自行联系原作者

相关文章
|
SQL 分布式计算 DataWorks
通过DataWorks使用PyODPS
PyODPS为MaxCompute的Python版SDK,支持在DataWorks中开发运行PyODPS任务。本文为您介绍在DataWorks上使用PyODPS的使用限制、主要流程和部分简单应用示例
496 2
|
数据可视化 定位技术
ArcGIS应用基础3 属性表的操作-以人口密度分布图为例
😀在本文中,作者以人口密度分布图为例,详细讲解了属性表的连接、字段添加和计算等功能,最终将人口密度可视化到地图上进行了底图整饰输出。
783 0
|
运维 大数据 云计算
|
9月前
|
人工智能 异构计算
DisPose:清华北大等多所高校联合推出基于人物图像增强视频生成技术,实现对人物动画的准确控制和一致性
DisPose是由北京大学、中国科学技术大学、清华大学和香港科技大学联合推出的增强人物图像控制动画质量的技术。该技术通过从骨骼姿态和参考图像中提取控制信号,生成密集运动场,并保持对不同体型的泛化能力,显著提升了人物图像动画的质量和一致性。
244 14
DisPose:清华北大等多所高校联合推出基于人物图像增强视频生成技术,实现对人物动画的准确控制和一致性
基于MPPT最大功率跟踪和SVPWM的光伏三相并网逆变器simulink建模与仿真
本课题基于Simulink建模与仿真,研究了光伏三相并网逆变器。系统包括PV模块、MPPT模块、SVPWM模块和电网模块。通过MPPT确保光伏阵列始终工作在最大功率点,SVPWM生成高质量的三相电压输出,提高能量转换效率。仿真结果展示了不同光照条件下系统的输出电压、功率及并网性能。核心程序基于MATLAB2022a实现。
|
存储 JavaScript 前端开发
使用Vue.js构建交互式前端界面的技术探索
【5月更文挑战第20天】Vue.js是一款渐进式JavaScript框架,擅长构建交互式前端界面。其核心特性包括响应式数据绑定、组件化开发、指令系统和虚拟DOM,简化开发并提升性能。通过Vue CLI创建项目,拆分组件,结合数据绑定和事件处理实现交互,使用Vue Router管理路由,Vuex进行状态管理,能高效构建现代Web应用。
|
9月前
|
人工智能 运维 监控
超越传统网络防护,下一代防火墙安全策略解读
超越传统网络防护,下一代防火墙安全策略解读
244 6
|
9月前
|
设计模式 API C#
桥接模式(Bridge Pattern)
桥接模式是一种结构型设计模式,通过将抽象部分与实现部分分离,使它们可以独立变化,从而提高系统的灵活性和扩展性。主要角色包括抽象化、扩展抽象化、实现和具体实现。适用于多变化维度的系统,如跨平台开发、图形系统等。优点是分离抽象与实现,减少子类数量;缺点是增加了复杂性和理解难度。
252 2
|
11月前
|
供应链 网络协议 数据安全/隐私保护
|
11月前
|
移动开发 Linux PHP
群雄逐鹿,谁主沉浮?三国战纪H5游戏详细图文架设教程
群雄逐鹿,谁主沉浮?三国战纪H5游戏详细图文架设教程