前台js:

form:

Ext.define("GS.base.BasicImportForm",{
    extend:"Ext.form.Panel",
    alias:"widget.basicImportForm",
    frame:true,
    tbar:[],
    layout:{
        type:'table'
    },
    items:[{
           xtype:'fileuploadfield',
           fieldLabel:'文件信息',
           name:'file',
           labelWidth:60,
           width:350,
           allowbBlank:false,
           msgTarget:'side',
           buttonText:'选择文件'
         }
    ]
});

controller:

"baseModelGrid button[ref=doc_upload]":{
                click:function(){
                 var win =Ext.create('Ext.Window', {
                        height: 250,
                        width: 500,
                        layout: 'fit',
                        closeAction: 'hide',
                        maximizable: true,          //是否可以最大化
  
                     minimizable: true,          //是否可以最小化          
                                                                      
                        resizable: true,  //是否可以改变窗口大小        
                        modal :true,//为真 当显示时,制作窗口模板并且掩饰他背后的一切
                        tbar:[
                              {xtype:"button",text:"上传",ref:"docupload",iconCls:"up",
                                  listeners:{
                                    'click':function(bt,e,eOpts){
                                        var basicImportForm = bt.up("window").down("basicImportForm");
                                        var formObj = basicImportForm.getForm();
                                        var file=formObj.findField("file");
                                        var str = file.getValue();
                                        var filename=str;
                                        str = str.substr(str.indexOf('.'),str.length - 1);
                                        if("" == str || str==".exe") {
                                            Ext.MessageBox.alert("提示","文件不能为空或者以.exe结尾!");
                                            return;
                                        };
                                        if(!Ext.isEmpty(file.getValue())){
                                            Ext.MessageBox.buttonText = {
                                                      ok     : "确定",
                                                      cancel : "取消",
                                                      yes    : "是",
                                                      no     : "否"
                                            };
                                            Ext.MessageBox.confirm("系统提示","确定是否上传?",function(btn,txt){
                                                if(btn == "yes"){
                                                    basicImportForm.submit({
                                                        url:'loadAction!upload.action',
                                                        params:{fileName:filename},                                    
                                                        waitMsg:'正在上传....',
                                                         success:function(form,action){
                                                            var resObj = action.result;
                                                            if (resObj.success) {
                                                                Ext.Msg.alert("提示","上传成功");
                                                                win.hide();
                                                            }else{
                                                                Ext.Msg.alert("提示","上传失败");
                                                            }
                                                        },
                                                        failure:function(form, action){
                                                            Ext.Msg.alert("提示","上传失败");
                                                        }
                                                    });
                                                }
                                            });
                                        }
                                    }
                                }
                              }
                           ],
                        items: [{  xtype: "basicImportForm"}]
                    }).show();
                }
            }

显示页面:

'-',{xtype:'button',text:'上传',ref:'doc_upload'}

java代码:

public class LoadAction extends BaseAction {
    /**
     * 序列号
     */
    private static final long serialVersionUID = 1L;
    //这个是用来写运行结果的信息的
    private  String msg;
    //来返回信息给前台的因为这里继承了baseaction直接用了towrite没有用到,否则可以通过它进行信息的返回
    private String contentType;
    //这个file是从extjs的form中的对应的xtype=fileupload name=file来的,名字一定要相对应,不然无法获得文件
    private File file;
    //filename是从前台传过来的,也可以通过request得到然后自己拼接
    private String fileName;

public void upload() throws Exception {
        //文件上传保存的位置
        String realPath = "E:\\" + fileName;
        if (file.isFile()) {
            //定义并初始化io流的读写操作
            BufferedInputStream bis = new BufferedInputStream(
                    new FileInputStream(file));
            BufferedOutputStream bos = null;
            try {
                bos = new BufferedOutputStream(new FileOutputStream(realPath));// 为以防万一,写文件的路径尽量写成正双斜杠的
                // 从源文件中取数据,写到目标文件中
                byte[] buff = new byte[8192];
                for (int len = -1; (len = bis.read(buff)) != -1;) {
                    bos.write(buff, 0, len);
                }
                bos.flush();
            } catch (IOException ie) {
                ie.printStackTrace();
                toWrite(jsonBuilder.returnFailureJson("'文件上传失败'"));
            } finally {
                if (bis != null) {
                    try {
                        bis.close();
                    } catch (IOException ie) {
                        ie.printStackTrace();
                    }
                }
                if (bos != null) {
                    try {
                        bos.close();
                    } catch (IOException ie) {
                        ie.printStackTrace();
                    }
                }
            
            }
        }
        toWrite(jsonBuilder.returnSuccessJson("'文件上传成功'"));
                
    }

public String getFileName() {
        return fileName;
    }

public void setFileName(String fileName) {
        this.fileName = fileName;
    }

// since we are using <s:file name="upload" .../> the file name will be
    // obtained through getter/setter of <file-tag-name>FileName
    public String getUploadFileName() {
        return fileName;
    }

public void setUploadFileName(String fileName) {
        this.fileName = fileName;
    }

// since we are using <s:file name="upload" ... /> the content type will be
    // obtained through getter/setter of <file-tag-name>ContentType
    public String getUploadContentType() {
        return contentType;
    }

public void setUploadContentType(String contentType) {
        this.contentType = contentType;
    }

// since we are using <s:file name="upload" ... /> the File itself will be
    // obtained through getter/setter of <file-tag-name>
    public File getUpload() {
        return file;
    }

public void setUpload(File file) {
        this.file = file;
    }

public String getMsg() {
        return msg;
    }

public void setMsg(String msg) {
        this.msg = msg;
    }

public String getContentType() {
        return contentType;
    }

public void setContentType(String contentType) {
        this.contentType = contentType;
    }

public File getFile() {
        return file;
    }

public void setFile(File file) {
        this.file = file;
    }  
       
   
    
}

extjs采用fileupload进行文件上传后台实现的更多相关文章

  1. zt对于C#中的FileUpload解决文件上传大小限制的问题设置

    对于C#中的FileUpload解决文件上传大小限制的问题设置 您可能没意识到,但对于可以使用该技术上载的文件的大小存在限制.默认情况下,使用 FileUpload 控件上载到服务器的文件最大为 4M ...

  2. 使用fileupload实现文件上传

    一. fileupload组件工作原理 先来张图片, 帮助大家理解 fileupload核心API 1. DiskFileItemFactory构造器1) DiskFileItemFactory() ...

  3. SpringMvc 文件上传后台处理

    springMVC后台参数是通过MultipartFile类来转化Request的文件上传,但需要apache下fileupload的jar包做支持. 在springMVC的dispatcher-co ...

  4. zk FileUpload(文件上传)

    <button label="上传 Image" upload="true,maxsize=1073741824"> <attribute n ...

  5. asp.net web常用控件FileUpload(文件上传控件)

    FileUpload控件的主要中能:向指定目录上传文件,该控件包括一个文本框和一个浏览按钮. 常用的属性:FileBytes,FileContent.FileName.HasFile.PostedFi ...

  6. Apache Commons fileUpload实现文件上传之一

      需要两个jar包: commons-fileupload.jar Commons IO的jar包(本文使用commons-io-2.4.jar) 利用Servlet来实现文件上传. package ...

  7. Spring MVC使用commons fileupload实现文件上传功能

    通过Maven建立Spring MVC项目,引入了Spring相关jar依赖. 1.为了使用commons fileupload组件,需要在pom.xml中添加依赖: <properties&g ...

  8. Apache Commons FileUpload 实现文件上传

    Commons FileUpload简介 Apache Commons是一个专注于可重用Java组件开发的 Apache 项目.Apache Commons项目由三个部分组成: 1.Commons P ...

  9. 实用ExtJS教程100例-009:ExtJS Form无刷新文件上传

    文件上传在Web程序开发中必不可少,ExtJS Form中有一个filefield字段,用来选择文件并上传.今天我们来演示一下如何通过filefield实现ExtJS Form无刷新的文件上传. 首先 ...

随机推荐

  1. USB设备不能用。提示Windows 无法启动这个硬件设备。 (代码 19)

    USB,由于其配置信息(注册表中的)不完整或已损坏, Windows 无法启动这个硬件设备. (代码 19) 原因:提示Windows 无法启动这个硬件设备. (代码 19) 处理解决方法: 1) r ...

  2. js关闭当前页面(窗口)的几种方式总结

    1. 不带任何提示关闭窗口的js代码 <a href="javascript:window.opener=null;window.open('','_self');window.clo ...

  3. 【转贴】Linux系统NGINX负载均衡404错误处理方法

    NGINX负载均衡404错误处理方法 使用NGINX 实现负载均衡,但一组服务器的数据不是实施同步,主服务器有了数据要过段时间才同步到其他服务器 upstream   image.stream.com ...

  4. 数据结构——图——最短路径D&F算法

    一.Dijkstra算法(贪心地求最短距离的算法) 在此算法中,我按照自己的理解去命名,理解起来会轻松一些. #define MAXSIZE 100 #define UNVISITED 0 #defi ...

  5. MyArrayList——实现自己的ArrayList!

    注:转载请注明原文地址:http://www.cnblogs.com/ygj0930/p/5965205.html ArrayList是我们常用的集合类之一,其实它的实现机制很简单,底层还是使用了一个 ...

  6. Release 版本和 Debug 版本

    什么是 Release 版本.Debug 版本? bug-缺陷,程序故障.而debug指的是排除缺陷,显然这个模式是面向开发者的. 而release是满足发布所用. Debug 和 Release,在 ...

  7. url中的scheme

    iPhone上URL Schemes的作用为应用程序提供了一个其他应用程序或者safari可以启动他的方法. --http://blog.sina.com.cn/s/blog_5673c12f0100 ...

  8. css3 过度效果之物体向上冒出

    <!DOCTYPE HTML> <html> <head> <meta charset="utf-8"/> <meta nam ...

  9. FlashPaper 使用经验之谈

    李志海  20101229  QQ:76855049 CSDN:资源下载地址:http://lizhihai_99.download.csdn.net/ http://download.csdn.ne ...

  10. python中使用list作为默认参数且调用时不给其赋值的问题

    最近在写代码时发现一个有趣的地方,当python中的函数使用list作为默认参数且调用时不给其赋值时,无法通过在函数中将其赋值为[]来达到清空此默认参数的目的.按照道理来说,函数f1中的list为局部 ...