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‘,
        width: 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(" == 写入成功! == ");
	}


郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。