IE上判断上传文件大小Spring + Jquery

1. spring的配置和处理:

(1)spring-mvc.xml的配置:

<!-- Multipart Resolver -->
    <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
        <property name="maxUploadSize" value="10240000"/>
        <property name="resolveLazily" value="true"/>
    </bean>

设置最大的Size。

(2)在Controller里的方法:

@ExceptionHandler(Exception.class)
    public void handleException(Exception ex,HttpServletRequest request,HttpServletResponse response){
        StringBuffer sb = new StringBuffer();
        String result="[{\"success\":\"0\"}]";
        sb.append("<script language='javascript'>history.go(-1);alert('");
        if (ex instanceof org.springframework.web.multipart.MaxUploadSizeExceededException){
            sb.append("文件大小不应大于1M");
            result="[{\"success\":\"2\"}]";
        } else{
            sb.append("上传异常!");
            result="[{\"success\":\"3\"}]";
        }
        sb.append("!');</script>");
        try {
            //response.setContentType("text/html; charset=utf-8");
            response.getWriter().println(result);
            //response.getWriter().flush();

        } catch (IOException e) {
            e.printStackTrace();
        }
    }

(3)Jquery:

$('#projectForm').ajaxForm({
                dataType: 'json',
                beforeSubmit: function() {
                    $('#saveProjectBtn').addClass('disabled');
                    $('#saveProjectBtn').attr('disabled','disabled');
                    return PROJECT.validate('#projectForm');
                },
                success: function (json) {
                    if(json[0].success=="0"){
                        setTimeout(
                            function(){
                                $.ajax({
                                    type: 'get',
                                    url: "/config/project",
                                    dataType: 'html',
                                    success: function(html) {
                                        $('#Common').html(html);
                                    },
                                    error: function() {
                                    }
                                })
                            },
                            2000);

                    }else if(json[0].success=="2"){
                        alert('The upload file size is over 2M')
                    }else if(json[0].success=="3"){
                        alert('There are some errors happened');
                    }
                },
                error: function () {
                    alert('There are some errors happened');
                }
            });

(4)html;

<input id="picture" type="file" size="45" name="picture" class="input">

经过上面的操作之后,可以在我本地的IE 8和火狐上即判断图片大小,又能上传图片了。

可是在别人的笔记本上却不能执行ajaxForm的success代码,很郁闷,同事试了好多方法都不行。如下的方法:

1. 不能得到typeValueJson 的值,这个值又是必须得,导致下面这个方法还是有问题。

(1)jquery:

init: function () {
            $("#typeValueBtn").live("click", function () {
                $('#newTypeValue').modal('show');
            });

            $('#hardwareVersion').live('blur', function () {
                var result = PROJECT.checkHardwareAndSoftwareVersionUnique();
            });
            $('#softwareVersion').live('blur', function () {
                var result = PROJECT.checkHardwareAndSoftwareVersionUnique();
            });

            $("#newProjectForm").ajaxForm(
                {
                    beforeSubmit: function () {
                        var typeNameStrs = $('#typeNameStrArray').val();
                        var typeNameStrArray = new Array();
                        typeNameStrArray = typeNameStrs.split(',');
                        var typeValueJson = '[';
                        for (var index in typeNameStrArray) {
                            var typeNamestr = $('#' + typeNameStrArray[index]);
                            var isSelect = typeNamestr.is('select');
                            if (typeNamestr.length > 0) {
                                typeValueJson += '{\"typeId\":\"' + typeNamestr.data('typeid') + '\", \"typeValue\":\"' + typeNamestr.val() + '\", \"isSelect\":\"' + isSelect + '\"},'
                            }
                        }
                        typeValueJson = typeValueJson.substring(0, typeValueJson.length - 1);
                        typeValueJson += ']';

                        if (typeValueJson.length > 2) {
                            $('#typeNameJsonArray').val(typeValueJson);
                        } else {
                            $('#typeNameJsonArray').val('');
                        }
                        $('#saveProjectBtn').addClass('disabled');
                        $('#saveProjectBtn').attr('disabled', 'disabled');
                        return PROJECT.validate('#newProjectForm');
                    },
                    success: function (data) {
                        switch (data) {
                            case 'success':
                                setTimeout(
                                    function () {
                                        $.ajax({
                                            type: 'get',
                                            url: "/config/project",
                                            dataType: 'html',
                                            success: function (html) {
                                                $('#Common').html(html);
                                            },
                                            error: function () {
                                            }
                                        })
                                    },
                                    2000);
                                break;
                            case 'max_error':
                                alert('The upload file size is bigger than 2M');
                                $('#saveProjectBtn').removeClass('disabled');
                                $('#saveProjectBtn').removeAttr('disabled');
                                break;
                            case 'error':
                                alert('There are some errors happened');
                                $('#saveProjectBtn').removeClass('disabled');
                                $('#saveProjectBtn').removeAttr('disabled');
                                break;
                        }

                    },
                    error: function () {
                        alert('There are some errors happened');
                    }
                }
            );

(2)Controller的代码:

/**
     * 异常处理
     * @param ex
     * @param request
     * @Description:
     */
    @ExceptionHandler(Exception.class)
    public void handleException(Exception ex,HttpServletRequest request,HttpServletResponse response){
        if (ex instanceof org.springframework.web.multipart.MaxUploadSizeExceededException){
            HttpUtil.writeData(response, "max_error");
        } else{
            HttpUtil.writeData(response, "error");
        }
    }

@RequestMapping(value = "/config/newProjectGetId", method = RequestMethod.POST)
    public void newProjectGetId(HttpServletRequest request,HttpServletResponse response) throws IOException, JSONException {
       
        String typeValueJson = request.getParameter("typeNameJsonArray");

        HttpUtil.writeData(response, "success");
		}

3. 最后在那个IE8上没有问题的代码:

(1).Jquery

$(function () {
    var win;
    var projectIdStr = "";

    $("#saveProjectBtn").bind("click", function(){
        PROJECT.initJsonType();
        $("#newProjectForm").ajaxForm(
            {
                beforeSubmit: function () {
                    $('#saveProjectBtn').addClass('disabled');
                    $('#saveProjectBtn').attr('disabled', 'disabled');
                    return PROJECT.validate('#newProjectForm');
                },
                success: function (data) {
                    switch (data) {
                        case 'success':
                            setTimeout(
                                function () {
                                    $.ajax({
                                        type: 'get',
                                        url: "/config/project",
                                        dataType: 'html',
                                        success: function (html) {
                                            $('#Common').html(html);
                                        },
                                        error: function () {
                                        }
                                    })
                                },
                                2000);
                            break;
                        case 'max_error':
                            alert('The upload file size is bigger than 2M');
                            $('#saveProjectBtn').removeClass('disabled');
                            $('#saveProjectBtn').removeAttr('disabled');
                            break;
                        case 'error':
                            alert('There are some errors happened');
                            $('#saveProjectBtn').removeClass('disabled');
                            $('#saveProjectBtn').removeAttr('disabled');
                            break;
                    }

                },
                error: function () {
                    alert('There are some errors happened');
                }
            }
        );
    });

initJsonType:function(){
            var typeNameStrs = $('#typeNameStrArray').val();
            var typeNameStrArray = new Array();
            typeNameStrArray = typeNameStrs.split(',');
            var typeValueJson = '[';
            for (var index in typeNameStrArray) {
                var typeNamestr = $('#' + typeNameStrArray[index]);
                var isSelect = typeNamestr.is('select');
                if (typeNamestr.length > 0) {
                    typeValueJson += '{\"typeId\":\"' + typeNamestr.data('typeid') + '\", \"typeValue\":\"' + typeNamestr.val() + '\", \"isSelect\":\"' + isSelect + '\"},'
                }
            }
            typeValueJson = typeValueJson.substring(0, typeValueJson.length - 1);
            typeValueJson += ']';

            if (typeValueJson.length > 2) {
                $('#typeNameJsonArray').val(typeValueJson);
            } else {
                $('#typeNameJsonArray').val('');
            }
        },


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值