ajaxfileupload.js文件上传自定义返回值为json

ajaxfileupload.js组件的确好用,但是那个返回值格式也太恶心了吧!
让人家定义一个dataType:"json",最后给返回一堆html,什么意思?也许是鄙人愚钝,索性修改了下源代码的处理函数,手动返回json得了。
修改代码:
大约在ajaxfileupload.js 的185行左右,有这么个函数:uploadHttpData
原始代码与改后代码对比:

一,修改ajaxfileupload.js源码
    uploadHttpData: function( r, type ) {
        /* var data = !type;
        data = type == "xml" || data ? r.responseXML : r.responseText;
        // If the type is "script", eval it in global context
        if ( type == "script" )
            jQuery.globalEval( data );
        // Get the JavaScript object, if JSON is used.
        if ( type == "json" )
            eval( "data = " + data );
        // evaluate scripts within html
        if ( type == "html" )
            jQuery("<div>").html(data).evalScripts();

        return data; */
        var data =r.responseText;
        var start = data.indexOf("{");
        var end = data.indexOf("}");
        var jsonStr = data.substring(start,end+1);
        return (jsonStr instanceof Object)?jsonStr:eval("(" + jsonStr + ")");

    }
就是用来处理了下返回值,这个函数返回的值就直接传递到了我们文件上传的success回调函数json值了。直接当对象使用就ok了。
二,文件上传js代码
    $.ajaxFileUpload({
        url:url,            //需要链接到服务器地址
        type: 'post',//请求方式  当要提交自定义参数时,这个参数要设置成post
        fileElementId:uploadFileName,                        //文件选择框的id属性
        dataType: 'json',                                     //服务器返回的格式,可以是json, xml
        success: function (data, status)            //相当于java中try语句块的用法
        {
          if(data.status==200){
            alert('上传成功');
          }else{
            alert('上传失败');
          }
        },
        error: function (data, status, e)            //相当于java中catch语句块的用法
        {       //alert("上传失败"+e);
            alert('error message');
        }
    });
三,文件上传spring mvc 代码
    @RequestMapping("/uploadFile.do")
    @ResponseBody
    public Map<String, Object> uploadFile(Model model, HttpServletRequest request,
            HttpServletResponse response,
            @RequestParam("uploadFileName") MultipartFile fileUpload)
            throws Exception {
        Map<String, Object> result = new HashMap<String, Object>();
        String fileName = fileUpload.getOriginalFilename();
        // 文件保存
        try {
            File newFile = new File(uploadPath + fileName);
            fileUpload.transferTo(newFile);
        } catch (Exception e) {
            result.put("status", "300");
            log.error("文件上传保存出错", e);
            return result;
        }
}

具体上传细节就不赘述了,网上很多,有问题请留言!

转载自:https://blog.csdn.net/guxing820/article/details/40349971

转载于:https://blog.51cto.com/jtech/2344538

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值