日期:2014-05-16 浏览次数:20440 次
//uploadFile.js Ext.onReady(function() { var fileForm = new Ext.form.FormPanel({ title : "", renderTo : "fileUpload", fileUpload : true, layout : "form", id : "fileUploadForm", items : [{ id : 'upload', name : 'upload', inputType : "file", fieldLabel : '上传图片', xtype : 'textfield', anchor : '40%' }, { xtype : 'box', id : 'browseImage', fieldLabel : "预览图片", autoEl : { width : 300, height : 350, tag : 'img', // type : 'image', src : Ext.BLANK_IMAGE_URL, style : 'filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod=scale);', complete : 'off', id : 'imageBrowse' } }], //form事件 listeners : { 'render' : function(f) { // this.form.findField('upload').on('render', function() { //通過change事件,图片也动态跟踪选择的图片变化 Ext.get('upload').on('change', function(field, newValue, oldValue) { //得到选择的图片路径 var url = 'file://' + Ext.get('upload').dom.value; // alert("url = " + url); //是否是规定的图片类型 if (img_reg.test(url)) { if (Ext.isIE) { var image = Ext.get('imageBrowse').dom; image.src = Ext.BLANK_IMAGE_URL;// 覆盖原来的图片 image.filters .item("DXImageTransform.Microsoft.AlphaImageLoader").src = url; }// 支持FF else { Ext.get('imageBrowse').dom.src = Ext .get('upload').dom.files .item(0).getAsDataURL() } } }, this); }, this); } }, buttons : [{ text : "提交", name : "submit", handler : submit }] }); // 上传图片类型 var img_reg = /\.([jJ][pP][gG]){1}$|\.([jJ][pP][eE][gG]){1}$|\.([gG][iI][fF]){1}$|\.([pP][nN][gG]){1}$|\.([bB][mM][pP]){1}$/ }); //上傳圖片到服务器, function submit() { Ext.getCmp("fileUploadForm").getForm().submit({ url : "uploadAction.action", method : "POST", success : function(form, action) { alert("success"); }, failure : function(form, action) { alert("failure"); } }); }
package com.cocobra.action; import java.io.*; import java.util.Date; import java.util.UUID; import org.apache.struts2.ServletActionContext; import com.opensymphony.xwork2.ActionSupport; public class UploadAction extends ActionSupport { /** * */ private static final long serialVersionUID = 1L; private File upload; private String uploadContentType; private String uploadFileName; //fileName 前面必須和uplaod一致,不然找不到文件 public File getUpload() { return upload; } public void setUpload(File upload) { this.upload = upload; } public String getUploadContentType() { return uploadContentType; } public void setUploadContentType(String uploadContentType) { this.uploadContentType = uploadContentType; } public String getUploadFileName() { return uploadFileName; } public void setUploadFileName(String uploadFileName) { this.uploadFileName = uploadFileName; } // 上传文件的文件名 private String getFileExp(String name) { int pos = name.lastIndexOf("."); return name.substring(pos); } private static final int BUFFER_SIZE = 16 * 1024; public String execute() throws Exception{ Date d = new Date(); System.out.println("uploadFileName = "+this.uploadFileName); //upload -- wapps 下面的文件夹,用来存放图片 String toSrc = ServletActionContext.getServletContext().getRealPath("upload")+"/"+d.getTime()+getFileExp(this.uploadFileName); //使用時間戳作為文件名 System.out.println("toFile= "+toSrc); File toFile = new File(toSrc); writeFile(this.upload,toFile); return SUCCESS; } private static void writeFile(File src, File dst) { System.out.println(" == 文件寫入 == "); try { InputStream in