首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 其他教程 > 开源软件 >

EXTJS 3.0 网狗盘之下传组件[开源]

2012-11-22 
EXTJS 3.0 网狗盘之上传组件[开源]自从EXTJS3.0发布后,很多同学后网友都要求我共享基于EXTJS3.0的多文件上

EXTJS 3.0 网狗盘之上传组件[开源]
自从EXTJS3.0发布后,很多同学后网友都要求我共享基于EXTJS3.0的多文件上传组件.我特地做了一个基于3.0和struts2的示例,特此奉上.
讨论Q_群:91986229(群3) 76202406(群2) 62150370(群1)一起讨论




//调用方法

Ext.onReady(function() {var win = new Ext.Window({title : '多文件上传示例',width : 500,height : 500,resizable : false,layout : 'fit',items : [{xtype : 'uploadpanel',uploadUrl : 'uploadFiles.action',filePostName : 'myUpload', // 这里很重要,默认值为'fileData',这里匹配action中的setMyUpload属性flashUrl : 'js/swfupload.swf',fileSize : '500 MB',height : 400,border : false,fileTypes : '*.*', // 在这里限制文件类型:'*.jpg,*.png,*.gif'fileTypesDescription : '所有文件',postParams : {path : 'files\\' // 上传到服务器的files目录下面}}],bbar : ['作者:廖瀚卿 | QQ:3990995 | 博客:http://yourgame.iteye.com']});win.show();});


//BasicAction
package com.lhq.uploader;import java.io.IOException;import java.io.PrintWriter;import javax.servlet.ServletContext;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import javax.servlet.http.HttpSession;import org.apache.struts2.ServletActionContext;import com.opensymphony.xwork2.ActionSupport;@SuppressWarnings("serial")public class BaseAction extends ActionSupport {public String jsonString;public void outJsonString(String str) {getResponse().setContentType("text/javascript;charset=UTF-8");outString(str);}/* * public void outJson(Object obj) { * outJsonString(JSONObject.fromObject(obj).toString()); } *  * public void outJsonArray(Object array) { * outJsonArray(JSONArray.fromObject(array).toString()); } */public void outString(String str) {try {PrintWriter out = getResponse().getWriter();out.write(str);} catch (IOException e) {e.printStackTrace();}}public void outXMLString(String xmlStr) {getResponse().setContentType("application/xml;charset=UTF-8");outString(xmlStr);}/** * 获得request *  * @return */public HttpServletRequest getRequest() {return ServletActionContext.getRequest();}/** * 获得response *  * @return */public HttpServletResponse getResponse() {return ServletActionContext.getResponse();}/** * 获得session *  * @return */public HttpSession getSession() {return getRequest().getSession();}/** * 获得servlet上下文 *  * @return */public ServletContext getServletContext() {return ServletActionContext.getServletContext();}public String getRealyPath(String path) {return getServletContext().getRealPath(path);}}


//FileAction
package com.lhq.uploader;import java.io.File;import java.io.UnsupportedEncodingException;import java.net.URLDecoder;import java.util.HashMap;import java.util.Map;/** * FileAction.java Create on 2008-12-18 上午09:16:22 *  * 说明:文件处理 *  * Copyright (c) 2008 by yourgame. *  * @author 廖瀚卿 * @version 1.0 */@SuppressWarnings("serial")public class FileAction extends BaseAction {private Map<String, Object> infos = new HashMap<String, Object>();public static final String ROOT = "upload\";private File myUpload;private String myUploadContentType;private String myUploadFileName;private String path;private boolean success;/** * 上传文件 *  * @return */public String uploadFiles() {String rootPath = getSession().getServletContext().getRealPath("/");rootPath += ROOT;String sp = rootPath + getPath();MyUtils.mkDirectory(sp);try {MyUtils.upload(getMyUploadFileName(), sp, getMyUpload());this.success = true;} catch (RuntimeException e) {e.printStackTrace();}return SUCCESS;}public File getMyUpload() {return myUpload;}public void setMyUpload(File myUpload) {this.myUpload = myUpload;}public String getMyUploadContentType() {return myUploadContentType;}public void setMyUploadContentType(String myUploadContentType) {this.myUploadContentType = myUploadContentType;}public String getMyUploadFileName() {return myUploadFileName;}public void setMyUploadFileName(String myUploadFileName) {this.myUploadFileName = myUploadFileName;}public boolean isSuccess() {return success;}public void setSuccess(boolean success) {this.success = success;}public String getPath() {return path;}public void setPath(String path) throws UnsupportedEncodingException {this.path = URLDecoder.decode(path, "UTF-8");}public Map<String, Object> getInfos() {return infos;}public void setInfos(Map<String, Object> infos) {this.infos = infos;}}


//MyUtils.java
package com.lhq.uploader;import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;public class MyUtils {/** * 上传文件 *  * @param savePath *            文件的保存路径 * @param uploadFile *            被上传的文件 * @return newFileName */public static String upload(String uploadFileName, String savePath, File uploadFile) {String newFileName = getUUIDName(uploadFileName, savePath);try {FileOutputStream fos = new FileOutputStream(savePath + newFileName);FileInputStream fis = new FileInputStream(uploadFile);byte[] buffer = new byte[1024];int len = 0;while ((len = fis.read(buffer)) > 0) {fos.write(buffer, 0, len);}} catch (FileNotFoundException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}return newFileName;}public static String getUUIDName(String fileName, String dir) {String[] split = fileName.split("\\.");String extendFile = "." + split[split.length - 1].toLowerCase();return java.util.UUID.randomUUID().toString() + extendFile;}/** * 根据路径创建一系列的目录 *  * @param path */public static boolean mkDirectory(String path) {File file = null;try {file = new File(path);if (!file.exists()) {return file.mkdirs();}} catch (RuntimeException e) {e.printStackTrace();} finally {file = null;}return false;}}





主分享!!
    然后告诉大家  如果点击不能和后台交互的话  把swfupload.js 的文件换掉  网上有得下!!!! 貌似楼主的这个文件出了点问题, 我把这个文件换了就顺利能后后台交互了!我是用来上传视频的  把strut配置在改下  视频文件上传成功!! 主分享!!
    然后告诉大家  如果点击不能和后台交互的话  把swfupload.js 的文件换掉  网上有得下!!!! 貌似楼主的这个文件出了点问题, 我把这个文件换了就顺利能后后台交互了!我是用来上传视频的  把strut配置在改下  视频文件上传成功!!
这个在当初发布的时候,浏览器都支持的,现在也不知道是什么个情况了,年代已久 24 楼 zhangyezeng 2012-03-12   我有个问题,选择文件格式的时候只能协议中扩展名,若是写两种以上的话就什么文件也看不到了,难道只能匹配一种扩展名? 25 楼 zhangyezeng 2012-03-12   我再详细的说一下啊,就是那个限制文件类型的时候fileTypes后面若是协议中扩展名如'*.flv'这个是可以生效的,但是如果两种以上扩展名'*.flv,*.mp4'就什么文件也看不到了,这是怎么回事儿啊,是不是不能匹配多扩展名啊?求解,太感谢啦

热点排行