ExtJs学习篇---文件上传篇

前段时间遇到了点问题,公司采用Spring+Hibernate+dwr+extjs这样的结构进行了开发,由于我刚开始没有怎么进出过这中设计模式,基本上所有的页面都是边学边问才做出来的,虽然里面很多的东西都是封装好了,直接拿来就可以用。没有进行过封装的Ext是不能直接使用我们底层写好的的dwr方法的。

在一个页面的设计中需要用到文件的上传,如果不是用EXt进行页面的开发的话我也不会来学习怎么用!因为他跟以前我写的那些还有那么点点的差别。下面我们就用代码说话嘛!

做了一个简单的例子。只是实现了这个功能而已!

页面的代码:

<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=gbk">
        <title>04.form</title>
        <link rel="stylesheet" type="text/css" href="../../resources/css/ext-all.css" />
        <script type="text/javascript" src="../../adapter/ext/ext-base.js"></script>
        <script type="text/javascript" src="../../ext-all.js"></script>
        <script type="text/javascript">
Ext.onReady(function(){

    var form = new Ext.form.FormPanel({
        labelAlign: 'right',
        title: 'form',
        labelWidth: 50,
        frame:true,
        fileUpload: true,
        url: '09_01.jsp',
        width: 280,

        items: [{
            xtype: 'textfield',
            fieldLabel: '文本框',
            name: 'file',
            inputType: 'file'
        }],
        buttons: [{
            text: '提交',
            handler: function() {
                form.getForm().submit({
                    success: function(form, action){
                        Ext.Msg.alert('信息', action.result.msg);
                    },
                    failure: function(){
                        Ext.Msg.alert('错误', '失败');
                    }
                });
            }
        }]
    });
    form.render("form");

});
        </script>
    </head>
    <body>
        <script type="text/javascript" src="../examples.js"></script>
        <div id="form" style="margin:100px;"></div>
    </body>
</html>
后台的代码:

<%@ page import="org.apache.commons.fileupload.*" %>
<%@ page import="java.util.List" %>
<%@ page import="java.util.Iterator" %>
<%@ page import="java.io.File" %>
<%@ page contentType="text/html;charset=utf-8"%>
<%
    request.setCharacterEncoding("UTF-8");
    response.setCharacterEncoding("UTF-8");

    String temp=getServletContext().getRealPath("/")+"temp";    //临时目录
    String loadpath=getServletContext().getRealPath("/")+"dir"; //上传文件存放目录
    DiskFileUpload fu = new DiskFileUpload();
    fu.setSizeMax(1*1024*1024); // 设置允许用户上传文件大小,单位:字节
    fu.setSizeThreshold(4096);  // 设置最多只允许在内存中存储的数据,单位:字节
    fu.setRepositoryPath(temp); // 设置一旦文件大小超过getSizeThreshold()的值时数据存放在硬盘的目录

    //开始读取上传信息
    List fileItems = fu.parseRequest(request);
    Iterator iter = fileItems.iterator(); // 依次处理每个上传的文件

    while (iter.hasNext()) {
        FileItem item = (FileItem) iter.next();// 忽略其他不是文件域的所有表单信息
        if (!item.isFormField()) {
            String name = item.getName();//获取上传文件名,包括路径
            name = name.substring(name.lastIndexOf("\\")+1);//从全路径中提取文件名
            // out.println(name);
            long size = item.getSize();
            if ((name == null || name.equals("")) && size == 0)
                continue;
            System.out.println(item.getName() + "    Size=" + item.getSize() + "<br>");//输出上传文件信息
            //File fNew= new File(loadpath, name);
            //item.write(fNew);
        }
    }
    response.getWriter().print("{success:true,msg:'成功'}");
%>

效果图:

图一:为选择文件之前

图二:选中文件过后


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值