`
qinya06
  • 浏览: 595563 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

ext 上传

阅读更多
关键处:
1    (1)  服务器返回数据类型应设为text/html.
Response. setContentType("text/html; charset=utf-8");
     (2) 返回字符串格式应有:
success部分,其后为false或true;
msg部份,其后是要返回的信息。
     例1:服务器返回成功信息
{success:true,msg:'成功'}
     例2:服务器返回失败信息
{success:false,msg:'失败'}
     
2     客户端
    (1)  Formpanel的fileUpload属性其值要设成true
    (2)  表单提交回调的两个函数应为:
         failure: function(form,action){},
         success: function(form,action){}

-------------------------------------------------
<%@page contentType="text/html" pageEncoding="UTF-8"%>   
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"  
   "http://www.w3.org/TR/html4/loose.dtd">   
<html>   
    <head>   
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">   
        <link rel="stylesheet" type="text/css" href="resources/ext21/resources/css/ext-all.css" />    
        <link rel="stylesheet" type="text/css" href="resources/ext21/resources/css/fyhC.css" />    
        <script type="text/javascript" src="resources/ext21/adapter/ext/ext-base.js"></script>   
        <script type="text/javascript" src="resources/fckeditor/fckeditor.js"></script>   
        <script type="text/javascript" src="resources/ext21/ext-all.js"></script>   
    </head>   
<script>      
       
    Ext.onReady( function (){   
        var form = new Ext.form.FormPanel({    
            labelAlign: 'right',    
            title: 'form',    
            labelWidth: 50,    
            frame:true,    
            fileUpload: true,    
            baseParams : {aa:'bb'},   //文件上传时,没有用?迷惑中   
            url:" login.do",   
            width: 380,    
  
            items: [{    
                xtype: 'textfield',    
                fieldLabel: '文本框',    
                name: 'file',    
                inputType: 'file'//文件类型    
            }],    
            buttons: [{    
                text: '按钮',    
                handler: s   
            }]    
        });    
        function s() {   
            form.getForm().submit({//客户端的数据提交给服务器   
                waitTitle:"请稍候",   
                waitMsg:"正在提交表单数据,请稍候。。。。。。",    
                //如果submit失敗,執行這一個function      
                failure:function(form1,action){            
                    Ext.MessageBox.hide();    
                    Ext.MessageBox.alert('Error',action.result.msg);   
                },      
                success: function(form1,action){      
                    Ext.MessageBox.hide();      
                    Ext.MessageBox.alert('Success',action.result.msg);      
                 }                      
             })   
        }   
  
        form.render(document.body);     
           
    });   
       
</script>           
    <body>   
        <div id="hello"/>   
    </body>   
</html>  

后台struts2 action
package action;   
import javax.servlet.http.HttpServletRequest;   
import javax.servlet.http.HttpServletResponse;   
import org.springframework.validation.BindException;   
import org.springframework.web.servlet.ModelAndView;   
import org.springframework.web.servlet.mvc.SimpleFormController;   
import java.io.File;   
import java.io.IOException;   
import java.sql.Timestamp;   
import java.text.SimpleDateFormat;   
import java.util.Iterator;   
import java.util.List;   
import org.apache.commons.fileupload.disk.DiskFileItemFactory;   
import org.apache.commons.fileupload.FileItemFactory;   
import org.apache.commons.fileupload.servlet.ServletFileUpload;   
import org.apache.commons.fileupload.FileItem;   
    
/**  
 *  
 * @author cloud  
 */  
public class Login  extends SimpleFormController{   
    public  Login(){   
//        this.setCommandClass(Fuser.class);   
    }   
       
    private static final long serialVersionUID = 7440302204266787092L;   
    String uploadPath = "d:\\uploadtest\\"; // 用于存放上传文件的目录   
    String tempPath = "d:\\tmp\\"; // 用于存放临时文件的目录   
  
    @Override  
    protected ModelAndView onSubmit(HttpServletRequest arg0, HttpServletResponse arg1, Object cmd, BindException ex) throws Exception {   
       arg1.setContentType("text/html; charset=utf-8");   
      // arg1.setContentType("text/html; charset=ISO-8859-4");    
  
       ModelAndView aaa=null;   
       String data="{success:flase,msg:'失败'}";   
            
//       if ( !( arg0.getParameter("aa").equals("bb") )  ) {   
//            aaa=new ModelAndView(this.getFormView());   
//             arg1.getWriter().print("{success:flase,message:'失败1'}");   
//            return aaa;     
//        }   
       try {   
            java.io.File tmpfile=new java.io.File(tempPath);   
            boolean isMultipart = ServletFileUpload.isMultipartContent(arg0);   
            DiskFileItemFactory  factory = new DiskFileItemFactory();   
            factory.setSizeThreshold(4096);//设置缓冲区大小,这里是4kb   
            factory.setRepository(tmpfile); // 设置临时目录   
               
            ServletFileUpload upload = new ServletFileUpload(factory);   
            upload.setSizeMax(4194304);// 设置最大文件尺寸,这里是4MB   
  
            List  fileItems = upload.parseRequest(arg0);// 得到所有的文件:   
            Iterator i = fileItems.iterator();   
            // 依次处理每一个文件:   
            while (i.hasNext()) {   
                FileItem fi = (FileItem) i.next();   
                String fileName = fi.getName();// 获得文件名,这个文件名包括路径:   
                if (fileName != null) {   
                    // 在这里可以记录用户和文件信息   
                    // 此处应该定义一个接口(CallBack),用于处理后事。   
                    // 写入文件a.txt,你也可以从fileName中提取文件名:   
                    String extfile = fileName.substring(fileName.indexOf("."));   
                    Timestamp now = new Timestamp((new java.util.Date())   
                         .getTime());   
                    SimpleDateFormat fmt = new SimpleDateFormat(   
                         "yyyyMMddHHmmssSSS");   
                    String pfileName = fmt.format(now).toString().trim();   
                    System.out.println(uploadPath + pfileName + extfile);   
                    fi.write(new File(uploadPath + pfileName + extfile));   
                    
                }   
            }   
               
            data="{success:true,msg:'上传成功'}";   
        } catch (Exception e) {   
            data="{success:flase,msg:'失败'}";   
            // 可以跳转出错页面   
           // aaa=new ModelAndView(this.getFormView());   
        } finally{   
             arg1.getWriter().write(data);   
             arg1.getWriter().flush();   
  
             return aaa;   
        }     
    }   
        
      
  
}  


服务端源码
用了apcher的 fileLoad组件
相关的两个包为:
commons-io-1.4.jar
commons-fileupload-1.2.1.jar

另外使用了spring的mvc框架。其他框架相应变动就行了
说明:spring返回的ModelAndView 视图必须是null,否则返回时会出现视图网页
而导制出现下载框
分享到:
评论

相关推荐

    ext上传组件,可以多文件上传

    EXT上传组件是一款基于Flash技术的前端文件上传工具,它提供了多文件上传的功能,极大地提升了用户在上传文件时的体验和效率。EXT是一个流行的JavaScript库,主要用于构建富客户端应用程序,而EXT上传组件是EXT库的...

    Ext上传文件例子(入门)

    本篇文章将聚焦于"Ext上传文件例子(入门)",通过一个简单的实例来讲解如何在ExtJS框架下实现文件上传功能。 首先,我们要理解文件上传的基本原理。在Web应用中,文件上传通常依赖于HTML的`&lt;input type="file"&gt;`元素...

    ext上传文件

    标题中的“ext上传文件”可能指的是使用EXTJS(一个JavaScript库)进行文件上传的功能。EXTJS提供了一套完整的用户界面组件,其中包括文件上传组件,它允许用户在Web应用中方便地上传文件。EXTJS通常与后端服务器...

    高级Ext上传功能,绝对精彩

    在高级Ext上传功能中,我们探讨的是ExtJS如何提供高效、用户友好的文件上传体验。这个“高级Ext上传功能”可能涉及到一系列复杂的技术和最佳实践,旨在优化用户体验,提高上传性能,并确保数据的安全性。 1. **...

    EXT上传附件

    EXT上传附件是一个在Web应用程序中实现文件上传功能的常见场景,EXT是一个JavaScript库,它提供了丰富的用户界面组件,包括表格、窗体、面板等。在EXT应用中集成百度Ueditor,可以创建一个强大的富文本编辑器,允许...

    Ext上传文件控件

    在给定的"Ext上传文件控件"中,我们关注的是ExtJS如何处理文件上传的功能。ExtJS 提供了一个名为`Ext.form.FileField`(也称为`Ext.form.field.File`)的组件,允许用户在Web表单中选择和上传文件。这个控件通常与`...

    Ext上传文件 Demo

    本示例“Ext上传文件 Demo”聚焦于如何使用Ext JavaScript库与ASP.NET后端相结合来实现文件上传。下面将详细阐述相关知识点。 首先,Ext是一个强大的JavaScript框架,用于构建富客户端应用程序。它提供了丰富的组件...

    EXT 上传图片 删除图片,显示图片,PHP

    在EXT中,处理图片上传、删除和显示是一项常见的任务,特别是在构建涉及多媒体内容的Web应用时。本篇文章将深入探讨EXT如何与PHP配合,实现这些功能。 1. **图片上传** 在EXT中,我们可以使用`Ext.form.FileField`...

    ext上传uploading

    标题“ext上传uploading”指的是基于EXTJS框架的文件上传功能。EXTJS是一个强大的JavaScript库,主要用于构建富客户端应用程序,其强大的组件模型使得创建复杂的Web界面变得简单。在这个场景中,“uploading”意味着...

    ext 上传 例子

    这个"EXT上传例子"可能包含了一个完整的示例项目,用于演示EXTJS如何实现文件上传功能。下面我们将详细探讨EXTJS中的文件上传以及相关的JavaScript技术。 1. **EXTJS组件:FileField** EXTJS 提供了`Ext.form....

    asp.net+ext上传图片并显示

    在ASP.NET框架中,结合EXT库创建一个上传图片并实时显示的功能是一项常见的需求。EXT库是一个强大的JavaScript UI框架,提供了丰富的组件和交互效果,而ASP.NET则是微软开发的服务器端Web应用程序框架。以下是对这个...

    Ext文件上传完整包

    在ExtJS中,有时候我们需要处理文件上传的功能,这时就涉及到了"Ext.ux.dialog"和"Common-fileupload"这两个关键概念。 **Ext.ux.dialog** Ext.ux.dialog是ExtJS的一个扩展组件库,它为用户提供了一些额外的对话框...

    Ext 文件上传的完整列子

    在Web开发中,文件上传是一项常见的功能,尤其在企业级应用和社交网络中更是不可或缺。ExtJS是一个强大的JavaScript库,提供了丰富的组件和功能,其中包括文件上传。本示例将详细介绍如何在ExtJS环境中实现文件上传...

    Ext文件上传、下载

    这篇博文“Ext文件上传、下载”将深入探讨如何利用`Ext`库来实现这一功能。由于描述部分为空,我们将主要依赖标题和标签来推测并解释相关知识点。 首先,我们要理解`Ext`的核心概念。`Ext`是基于`Sencha Touch`和`...

    Ext2.0 文件上传组件

    "Ext2.0 文件上传组件"是一个用于Web应用程序的组件,它允许用户在浏览器中方便地上传文件。这个组件基于Ext JavaScript库的2.0版本,Ext是一个强大的前端开发框架,提供了丰富的用户界面组件和数据管理功能。在本文...

    Ext 文件上传参考文档

    Ext 文件上传参考文档主要涉及的是在Web开发中处理文件上传的场景,特别是使用ExtJS框架进行前端交互。ExtJS是一个强大的JavaScript库,用于构建复杂的、数据驱动的Web应用程序。文件上传是用户界面中的常见功能,...

    ext 文件上传

    "ext 文件上传"这个主题可能指的是EXTJS框架中的文件上传组件或者相关的扩展功能。EXTJS是一个流行的JavaScript库,用于构建富客户端应用程序,它提供了丰富的组件和强大的数据绑定机制。 在EXTJS中,文件上传通常...

    一个JSP网盘(运用Struts+Ext上传技术)

    【标题】: "一个基于Struts和Ext的JSP文件上传网盘系统" 【描述】: 本项目是一个实现文件上传和管理功能的JSP网盘应用,它结合了Struts框架与Ext JS前端库来构建用户界面和处理业务逻辑。Struts作为一个成熟的MVC...

    一个Ext的上传文件的控件,能上传中文文件。

    一个Ext的上传文件的控件。修改过的源码。能上传中文文件。

    Ext 实现 文件上传 进度显示

    `Ext`是一个流行的JavaScript框架,用于构建富客户端应用程序,而实现文件上传进度显示则为用户提供更好的用户体验。本篇文章将详细探讨如何利用`Ext`来实现文件上传的进度显示,并结合`commons-fileupload`库进行...

Global site tag (gtag.js) - Google Analytics