zoukankan      html  css  js  c++  java
  • ExtJS:文件上传实例

    ExtJS:文件上传实例

    var ext_dateFormat = 'Y-m-d H:i:s';
    var dateFormat = 'yyyy-MM-dd HH:mm:ss';
    var date = new Date();
    Ext.onReady(function() {
    	var fifp =Ext.create('Ext.form.Panel', {
            renderTo: 'fi-form',
             500,
            frame: true,
            title: '文件上传',
            bodyPadding: '10 10 0',
    
            defaults: {
                anchor: '100%',
                allowBlank: false,
                msgTarget: 'side',
                labelWidth: 80
            },
            items: [{
                xtype: 'textfield',
                fieldLabel: '样品编号',
                id:'finfo',
                name:'finfo'
            },{
            	 xtype: 'container',
                 layout: 'hbox',
                 items: [{
                	 xtype: 'textfield',
                     fieldLabel: '当前经度',
                     id:'flongitude',
                     name:'flongitude',
                     msgTarget: 'side',
                     allowBlank: false,
                     labelWidth: 80
                 }, {
                	 xtype: 'textfield',
                     fieldLabel: '当前纬度',
                     id:'flatitude',
                     name:'flatitude',
                     msgTarget: 'side',
                     allowBlank: false,
                     labelWidth: 80
                 }]
            },{
    			xtype : 'textfield',
    			fieldLabel : '上传时间',
    			id : 'ftime',
    			name : 'ftime',
    			// yyyy-MM-dd HH:mm:ss
    			value : Ext.Date.format(new Date(date.getFullYear(),date.getMonth(),date.getDate(),
    					date.getHours(),date.getMinutes(),date.getSeconds()), ext_dateFormat),
    			listeners : {
    				'focus' : function() {
    					WdatePicker({
    						dateFmt : dateFormat
    					});
    				}
    			}
            },{
                xtype: 'filefield',
                id: 'fiupload',
                emptyText: '请点击右边按钮选择文件!',
                fieldLabel: '选择文件',
                name: 'fiupload',
                buttonText: '浏览文件',
                buttonConfig: {
                    iconCls: 'upload-icon'
                }
            }],
    
            buttons: [{
                text: '保存文件',
                handler: function(){
                    var fiform = this.up('form').getForm();
                    if(fiform.isValid()){
                        fiform.submit({
                        	type : 'ajax',  
                            url: 'files/addData.action',
                            method : "POST",
                            waitMsg: ' 正在上传,请稍候...',
                            success: function(form, action) {
                            	Ext.Msg.alert('Success','文件上传成功!');
                            },
                        	failure:function(form, action)
                        	{
                        	Ext.Msg.alert("Failure","文件上传失败");
                        	}
                        });
                    }
                }
            },{
                text: '重新上传',
                handler: function() {
                    this.up('form').getForm().reset();
                }
            }]
        });
    	
    });
    

    后台处理核心类方法:

    	private static final int BUFFER_SIZE = 16 * 1024;
    
    	public String addData() throws Exception {
    		Timestamp ts = new Timestamp(System.currentTimeMillis());
    		SimpleDateFormat df = new SimpleDateFormat("yyyyMMddHHmmssSSS");// 设置日期格式
    		ts = Timestamp.valueOf(this.ftime);
    		System.out.println(ts);
    		String nowtime = df.format(new Date());
    		System.out.println("uploadFileName = " + this.fiuploadFileName);
    		System.out.println("uploadContentType = " + this.fiuploadContentType);
    		System.out.println(nowtime);
    		// upload -- wapps 下面的文件夹,用来存放图片
    		String toSrc = ServletActionContext.getServletContext().getRealPath(
    				"upload")
    				+ "/" + nowtime + getFileExp(this.fiuploadFileName); // 使用時間戳作為文件名
    		String toFilename = nowtime + getFileExp(this.fiuploadFileName);
    		String toSrcPath = "./upload/" + toFilename;
    		String toinfo = this.finfo;
    		Double tolongitude = Double.parseDouble(this.flongitude);
    		Double tolatitude = Double.parseDouble(this.flatitude);
    		System.out.println("原文件名 : " + this.fiuploadFileName);
    		System.out.println("文件描述 : " + toinfo);
    		System.out.println("存放路径: " + toSrcPath);
    		System.out.println("存放文件名: " + toFilename);
    		System.out.println("当前经度 : " + tolongitude);
    		System.out.println("当前维度 : " + tolatitude);
    		File toFile = new File(toSrc);
    		writeFile(this.fiupload, toFile);
    		Files files = new Files(ts, toFilename, toSrcPath, toinfo, tolatitude,
    				tolongitude);
    		String result = filesService.addData(files);
    		System.out.println(result);
    		success = true;
    		return SUCCESS;
    	}
    
    	private static void writeFile(File src, File dst) {
    		System.out.println(" == 文件写入 == ");
    		try {
    			InputStream in = null;
    			OutputStream out = null;
    			try {
    
    				in = new BufferedInputStream(new FileInputStream(src),
    						BUFFER_SIZE);
    				out = new BufferedOutputStream(new FileOutputStream(dst),
    						BUFFER_SIZE);
    				byte[] buffer = new byte[BUFFER_SIZE];
    				while (in.read(buffer) > 0) {
    					out.write(buffer);
    				}
    			} finally {
    				if (null != in) {
    					in.close();
    				}
    				if (null != out) {
    					out.close();
    				}
    			}
    		} catch (Exception e) {
    
    			e.printStackTrace();
    		}
    		System.out.println(" == 写入成功! == ");
    	}


  • 相关阅读:
    #检查磁盘使用率超过90%,并且后台进程没有rman在跑,就运行 /data/script/del_dg_arch.sh 脚本清理归档
    linux shell数据重定向
    创建用户
    Linux HA+ Oracle 安装维护手册
    解决UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-1: ordinal not in range
    Linux 文件不能被root修改与编辑原因
    python中的时间戳和格式化之间的转换
    Python-Redis-发布订阅
    Python-Redis-常用操作&管道
    Python-Redis-Set
  • 原文地址:https://www.cnblogs.com/wuyida/p/6300904.html
Copyright © 2011-2022 走看看