1、将文件上传到FileLoadServlet处理
- Ext.onReady(function() {
- var form = new Ext.form.FormPanel({
- labelAlign : 'right',
- title : 'form',
- labelWidth : 50,
- buttonAlign : 'center',
- frame : true,
- fileUpload : true,
- url : 'FileLoadServlet',
- width : 280,
- items : [ {
- xtype : 'textfield',
- fieldLabel : '文本框',
- name : 'file',
- inputType : 'file'
- } ],
- buttons : [ {
- text : '提交',
- handler : function() {
- form.getForm().submit({
- success : function(form, action) {
- Ext.Msg.alert('信息', action.result.msg);
- },
- failure : function() {
- Ext.Msg.alert('错误', '失败');
- }
- });
- }
- } ]
- });
- form.render("form");
- });
2、servlet类处理
(1)web.xml
- <servlet>
- <servlet-name>FileLoadServlet</servlet-name>
- <servlet-class>com.alibaba.upload.FileLoadServlet</servlet-class>
- </servlet>
- <servlet-mapping>
- <servlet-name>FileLoadServlet</servlet-name>
- <url-pattern>/FileLoadServlet</url-pattern>
- </servlet-mapping>
(2)具体的类处理
- FileItemFactory factory = new DiskFileItemFactory();
- ServletFileUpload fileload = new ServletFileUpload(factory);
- fileload.setSizeMax(4194304);
- try {
- List<FileItem> fileItems = (List<FileItem>) fileload.parseRequest(request);
- Iterator<FileItem> iter = fileItems.iterator(); // 依次处理每个上传的文件
- while (iter.hasNext()) {
- FileItem item = (FileItem) iter.next();// 忽略其他不是文件域的所有表单信息
- if (!item.isFormField()) {
- String name = item.getName();//获取上传文件名,包括路径
- System.out.println(name);
- if (name != null) {
- File filetoserver = new File("D:\\", name);
- item.write(filetoserver);
- System.out.println("文件:" + name + "上传成功,大小是" + item.getSize());
- }
- }
- }
- } catch (Exception e) {
- }
- response.getWriter().print("{success:true,msg:'上传成功'}");
【注意】
1、需要加入fileupload包,由于其使用的common-io包,同时也需要加入其中。
本文转自 tianya23 51CTO博客,原文链接:http://blog.51cto.com/tianya23/815163,如需转载请自行联系原作者