`
hanjava
  • 浏览: 32372 次
  • 性别: Icon_minigender_2
  • 来自: 深圳
社区版块
存档分类
最新评论

extjs文件上传导入及 本地模版下载

阅读更多
logisticLockSettingFormImport = Ext.extend(Ext.Window, {
    formPanel: null,
    constructor: function(a) {
        Ext.applyIf(this, a);
        this.initUIComponents(a.colData);
        logisticLockSettingFormImport.superclass.constructor.call(this, {
            id: "logisticLockSettingFormImportWin",
            layout: "fit",
            iconCls: "menu-icWorkPlan",
            items: this.formPanel,
            modal: true,
            autoHeight: true,
            width: 525,
            minWidth: 525,
            maximizable: false,
            resizable: false,
            title: "导入",
            buttonAlign: "center",
            buttons: this.buttons,
            keys: {
                key: Ext.EventObject.ENTER,
                fn: this.save.createCallback(this.formPanel, this),
                scope: this
            }
        });
    },
    initUIComponents: function(tb) {
        this.formPanel = new Ext.FormPanel({
            layout: "form",
            autoHeight: true,
            fileUpload:true,
            frame: false,
            labelAlign: "right",
            labelWidth: 40,
            defaults: {
                width: 500
            },
            border: false,
            url: __ctxPath + "/logic/logisIlockExcelImportLogicIlock.do",
            id: "logisticLockSettingFormImport",
            bodyStyle: "padding: 0px 5px 0px 5px",
            items: [{
                xtype: "fieldset",
                title: "智能锁信息导入",
                inputType : 'file',
                defaults: {
                    xtype: "textfield",
                    anchor: "100%,100%"
                },
                items: [{
                xtype : 'fileuploadfield',
                    emptyText : '选择上传文件',
                    fieldLabel : '文件',
                    name : 'uploadExcel',
                    id:'uploadExcel',
                    buttonText : '请选择文件',
                    anchor : '95%',
                    allowBlank: false,
                    listeners : {
                        'fileselected' : function(fb, v) {
                var allowfiletype='.xls,.xlsx';//只能导入的格式
                            var temp = v.replace(/^.*(\.[^\.\?]*)\??.*$/, '$1');//获得文件的后缀名
                            var temp1 = temp.toLocaleLowerCase();
                            //alert(temp1);
                            if (allowfiletype.indexOf(temp1) == -1) {
                                Ext.Msg.alert("错误","不允许选择该类型文件,请重新选择!");
                                fb.setValue("");
                                FileRname.setValue("");
                            }
                        }
                    }
                },{
                xtype : 'label',
                html : '<font color=red>智能锁导入模版下载</font>'
                }]
            }]
        });

        this.buttons = [{
            text: "保存",
            iconCls: "btn-save",
            handler: this.save.createCallback(this.formPanel, this)
        },
        /*{
text :"重置",
iconCls :"btn-reset",
handler :this.reset
.createCallback(this.formPanel)
},*/
        {
            text: "取消",
            iconCls: "btn-cancel",
            handler: this.cancel.createCallback(this)
        }];
    },
    reset: function(a) {
        a.getForm().reset();
    },
    cancel: function(a) {
        a.close();
    },
    save: function(a, b) {
        if (a.getForm().isValid()) {
//        var filenPath = Ext.getCmp("uploadExcel").getValue();
//        filenPath=filenPath.replace(/\\/g, "\\\\");//将\转换成\\
//        alert("filenPath==="+filenPath);
//        Ext.Ajax.request({
//        url: __ctxPath + "/logic/logisIlockExcelImportLogicIlock.do?uploadExcel="+filenPath, //导入接口
// success: function(d) {
//        alert("=="+d.responseText);
// var g = Ext.util.JSON.decode(d.responseText);
// console.log(g);
// if(g.success==true){
// Ext.ux.Toast.msg("操作信息", "成功导入信息!"+g.data);
//                     var d = Ext.getCmp("logicIlockpanel");
//                     if (d != null) {
//                         d.getStore().reload();
//                     }
//                     b.close();
// }else{
// Ext.MessageBox.show({
//                         title: "操作信息",
//                         msg: "信息保存出错,请联系管理员!"+g.data,
//                         buttons: Ext.MessageBox.OK,
//                         icon: Ext.MessageBox.ERROR
//                     });
//                     b.close();
// }
// }
// });
            a.getForm().submit({
                method: "POST",
                waitMsg: "正在导入数据...",
                success: function(c, e) {
                    Ext.ux.Toast.msg("操作信息", "成功保存信息!");
                    var d = Ext.getCmp("logicIlockpanel");
                    if (d != null) {
                        d.getStore().reload();
                    }
                    b.close();
                },
                failure: function(c, d) {
                    Ext.MessageBox.show({
                        title: "操作信息",
                        msg: "信息保存出错,请联系管理员!",
                        buttons: Ext.MessageBox.OK,
                        icon: Ext.MessageBox.ERROR
                    });
                    b.close();
                }
            });
        }
    }
});

/**
* 信息导入后台代码
* @return
* @throws Exception
*http://localhost:8080/HEMS/logic/logisIlockExcelImportLogicIlock.do
*/
public String logisIlockExcelImport() throws Exception{
HttpServletRequest req = ServletActionContext.getRequest();
HttpServletResponse response = ServletActionContext.getResponse();
req.setCharacterEncoding("UTF-8");
response.setContentType("text/html; charset=utf-8");
response.setCharacterEncoding("UTF-8");

//获取要保存文件夹的物理路径(绝对路径)
        String realPath=ServletActionContext.getServletContext().getRealPath("/attachFiles/");
        File tempFile = new File(realPath);
        if(!tempFile.exists()){
        tempFile.mkdirs();
        }
       
List<String> list = null;
try {
//保存文件
FileUtils.copyFile(uploadExcel, new File(tempFile,uploadExcelFileName));
// String tempPath = F:\\logis_ilock.xlsx";
        //获得导入的文件路径
        String savePath=ServletActionContext.getServletContext().getRealPath("/attachFiles/"+this.uploadExcelFileName);
File importFile = new File(savePath);
            list = ExcelHelper.exportListFromExcel(importFile, 0);//读取excel按自己需求解析,这里不提供
            importFile.delete();
           
String fnumber=null;//编号名称
String fcode=null;//锁编码
String fphone=null;//手机号
String strLockSupplier=null;//锁厂家
String fdescription=null;//备注

String[] strs=null;//每行内容信息
LogisIlock lock = null;

StringBuffer buff=new StringBuffer("{\"success\":true").append(",\"data\":\"");
for (String str : list) {
strs=str.split(",");//测试数据,863014530683340,13526541534,星安,测试测试测试哈哈
fnumber=strs[0];
fcode=strs[1];
fphone=strs[2];
strLockSupplier=strs[3];
fdescription=strs[4];

lock = logicIlockService.getLogisIlock(fcode);
if(null!=lock){
if(buff.length()<25){
buff.append(fcode+"锁编码已经存在");
}else{
buff.append(","+fcode+"锁编码已经存在");
}
}else{
lock=new LogisIlock();
lock.setFnumber(fnumber);
lock.setFcode(fcode);
lock.setFphone(fphone);
lock.setLockSupplier(Integer.valueOf(DataDictionaryUtils.lockSupplier(strLockSupplier)));
lock.setFdescription(fdescription);
lock.setFstatus(0);
lock.setFisDel(0);
lock.setFcreatorId(ContextUtil.getCurrentUser().getUserId());
lock.setFdepId(ContextUtil.getCurrentUser().getDepartment()==null?null:ContextUtil.getCurrentUser().getDepartment().getDepId());
lock.setForgId(ContextUtil.getCurrentUser().getOrgId());
lock.setFcreateTime(new Date());
this.logicIlockService.save(lock);
if(buff.length()<25){
buff.append(fcode+"锁编码导入成功");
}else{
buff.append(","+fcode+"锁编码导入成功");
}
}
}
buff.append("\"}");
this.jsonString=buff.toString();
} catch (Exception e) {
e.printStackTrace();
}
return "success";
}
0
0
分享到:
评论

相关推荐

    extjs 的简单导入文件 第一步

    总结来说,要实现"Extjs 的简单导入文件 第一步",我们需要理解并应用Ext JS的表单组件、文件上传字段、事件处理、Ajax请求,以及服务器端文件处理。这是一个涉及前端和后端交互的综合过程,需要良好的JavaScript和...

    ExtJS4 上传文件类型和大小的判断方法(实例)

    对应的描述看本人博文《ExtJS4 上传文件类型和大小的判断方法(实例) 》:http://blog.csdn.net/biboheart/article/details/10579175 在这里不具体描述了。看题也大概可以知道这些代码实现了什么应用。

    EXTJS 多文件上传

    在EXTJS中,`MultiFileUploadField` 是一个组件,它允许用户在单个操作中选择并上传多个文件,极大地提升了用户交互体验。这个功能对于处理大量文件上传的场景非常有用,比如在内容管理系统、图像库或者文件分享平台...

    ExtJS验证上传文件类型

    ExtJS 验证上传文件类型 ExtJS 中实现文件上传功能是非常方便的,但对于新手来说,控制文件上传类型是一个难题。例如,我们只想让用户上传特定的文件类型,例如txt文件,那么如何实现当用户上传非txt文件时,给出...

    批量上传文件 EXTJS文件上传 上传组件

    EXTJS是一种基于JavaScript的前端框架,它提供了丰富的用户界面组件,包括用于文件上传的组件。在EXTJS中,实现批量上传文件是一项常见的需求,尤其在处理大量数据或媒体文件时。EXTJS的文件上传组件提供了方便的...

    extjs+swfupload实现多文件上传下载删除带进度条

    本篇将详细讲解如何利用`ExtJS`和`SwfUpload`来创建一个支持多文件上传、下载和删除,并带有进度条显示的系统。 `ExtJS`是一个基于JavaScript的UI框架,它提供了丰富的组件库和强大的数据绑定机制,可以构建出复杂...

    ExtJS4多文件上传,带进度条及管理

    本文将详细解析"ExtJS4多文件上传,带进度条及管理"这一主题,涵盖其核心概念、实现方式以及相关技术。 **一、ExtJS4概述** ExtJS4是Sencha公司推出的一个前端框架,它提供了丰富的组件库和强大的数据绑定机制,...

    ExtJS拖拽导入Excel数据

    用户可以从excel中选中要导入的数据,直接拖拽到grid中

    ExtJS原生多文件拖动上传组件

    ExtJS原生多文件拖动上传组件 使用时修改包路径 1.多文件上传 2.支持拖动上传 3.支持图片压缩 4.支持图片合并 5.文件排序 可扩展实时图片预览 api //初始化画板 initCanvas //上传文件窗口 uploadWindow //初始化...

    ExtJS实现文件下载

    在本文中,我们将深入探讨如何使用ExtJS框架来实现文件下载功能。ExtJS是一个流行的JavaScript库,用于构建桌面级的Web应用程序,它提供了丰富的组件和功能,包括与服务器的交互,如文件下载。 首先,我们要了解`...

    Extjs4文件上传,后台struts2

    在本文中,我们将深入探讨如何使用ExtJS 4与Struts2框架实现文件上传功能。ExtJS是一个强大的JavaScript库,提供了丰富的用户界面组件,而Struts2是Java Web开发中的一个MVC框架,用于处理后端业务逻辑。下面,我们...

    extjs 4.2 多文件上传

    用Ext编写的多文件上传组件,已封装。 支持多文件上传,文件下载,文件删除,

    EXTjs 文件上传(可用)

    本文将深入探讨如何使用EXTjs进行文件上传,并结合Strut2实现这一功能。 首先,EXTjs 提供了`Ext.form.FileField`组件,用于在表单中创建文件选择字段。这个组件允许用户选择本地文件,然后通过AJAX方式提交到...

    ExtJS 多文件上传 UploadDialog For ExtJS3.x

    ### ExtJS 多文件上传 UploadDialog For ExtJS3.x #### 概述 在Web开发领域,特别是使用ExtJS框架进行界面设计时,文件上传功能是必不可少的一部分。然而,随着ExtJS版本的更新,原有的多文件上传组件可能不再兼容...

    ExtJS poi 导入excel

    1. **文件上传**:在ExtJS的前端,创建一个文件上传组件,用户选择Excel文件后,通过Ajax提交到服务器。 2. **接收入口**:后端服务器接收到文件,将其保存到临时目录或者内存中。 3. **读取数据**:使用Apache POI...

    extjs 导入导出 Exel

    文件"Extjs利用服务器实现Excel数据导入editorgridpanel中显示_寒冰_新浪博客.mht"可能讲解了如何将Excel 文件的数据导入到EXTJS 的EditorGridPanel 中。导入过程一般包括: 1. 用户上传Excel 文件,EXTJS 通过...

    extjs 多文件上传

    在ExtJS中实现多文件上传功能,能够极大地提升用户体验,特别是在处理大量数据或文件时。本篇文章将详细探讨如何使用ExtJS实现多文件上传,并涵盖相关的关键知识点。 一、ExtJS 文件上传组件 在ExtJS中,我们可以...

    extjs多文件上传

    本文将深入探讨“extjs多文件上传”这一主题,结合标签“源码”和“工具”,我们将主要关注如何使用ExtJS库实现这一功能,并可能涉及第三方上传工具Plupload。 首先,ExtJS是一个基于JavaScript的UI框架,它提供了...

    struts2.0+Extjs文件上传例子

    功能强大的Struts2.0+Extjs实现的文件上传,包含文件上传进度,文件的下载,压缩,解压多文件删除等

    Extjs多文件上传

    在多文件上传中,我们会用到`Ext.form.field.File`(文件选择字段)组件,它允许用户选择本地文件,并通过Ajax方式提交到服务器。 实现多文件上传的步骤如下: 1. 创建表单:首先,我们需要创建一个包含文件选择...

Global site tag (gtag.js) - Google Analytics