热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

使用jquery.uploadify上传,MVC返回的JSON太长,不被接收

在JS里定义了事件:onUploadSuccess:function(file,data,response){
在JS里定义了事件:
                'onUploadSuccess': function (file, data, response) {
                    .....
                }
MVC接收上传的文件,并验证数据,然后返回验证结果,返回的是一个JsonResult。

逻辑及代码都非常的简单,不过,当MVC返回的Json太多时(用户上传的数据太多了,错误也比较多),MVC得到的错误信息都有20多万个字符。 
结果是:MVC端一点错误也没有,打断点也可以看到JSON结果,但是uploadify的onUploadSuccess就是不执行。 然后我把返回结果人为的截断一些(18万个字符),就可以了。

是不是uplpadify这个的限制,还是哪里的呀?怎么才能解决这个问题呢?

JS代码:
            $("#file_upload").uploadify({
                //开启调试
                'debug': false,
                //是否自动上传
                'auto': true,
                'buttonText': '选择文件',
                //flash
                'swf': "@Url.Content("~/Scripts/uploadify-v3.2/uploadify.swf")",
                //文件选择后的容器ID
                'queueID': 'uploadfileQueue',
                'uploader': '@Url.Action("ImportExcel", "XXXX")',
                'width': '86',
                'height': '30',
                //'method': 'post',
                'multi': false,
                'folder': 'UploadFileId',
                'fileTypeDesc': '支持的格式:',
                'fileTypeExts': '*.xls;*.xlsx;',
                'fileSizeLimit': '100MB',
                'removeTimeout': 1,

                //返回一个错误,选择文件的时候触发
                'onSelectError': function (file, errorCode, errorMsg) {
                    .....
                },
                //检测FLASH失败调用
                'onFallback': function () {
                    alert("您未安装FLASH控件,无法上传图片!请安装FLASH控件后再试。");
                },
                //上传到服务器,服务器返回相应信息到data里
                'onUploadSuccess': function (file, data, response) {
                    .....
                }
            });

17 个解决方案

#1


mei ren ????

#2


 $('#file_upload').uploadify({
        'buttonText': '浏  览',
        'uploader': '/FileUpload/Upload',
       'fileTypeExts': '*.gif; *.jpg; *.png; *.bmp; *.flv',
        'onQueueComplete': function (event, data) {
            ShowUpFiles($("#Attachment_GUID").val(), "div_files");
            $.messager.alert("提示", "上传完毕!")
        },
   'onUploadSuccess': function (file, data, response) {
            $("#Attachment_GUID").val(data);
            $.messager.alert("提示", "上传完毕!");
        },
 FileUploadController
 
  [AcceptVerbs(HttpVerbs.Post)]
        public ActionResult Upload(HttpPostedFileBase fileData, string guid, string folder)
        {
            if (fileData != null)
            {
                try
                {
                    .....
                    //return Json(new { Success = true, FileName = fileName, SaveName = saveName });
                    return Content(saveName);
                }
                catch (Exception ex)
                {
                    return Content("false");
                }
            }
            else
            {
                return Content("false");
            }
        }
这样返回就可以了

#3


功能是已经实现的, 我的问题是,后端返回的data太长了,然后 onUploadSuccess 这个事件就不进了。不知道是MVC的问题,还是这个插件的限制?

#4


不是有一个'fileSizeLimit,那个不管用吗?

#5


不是文件上传大小,是返回的data太长了

#6


既然系统给出的异常里的文字太多了,你就自己捕获异常,然后封装自己的一个异常吧。

#7


不是上传文件么,你返回那么多做啥

#8


大家没明白我的意思, 后台并没有抛出任何异常, 返回很多数据的原因很简单:就是上传的文件是一个Excel表格,传上去之后还需要在后台对数据做一下校验。 
问题是:当返回的data很长时,onUploadSuccess这个事件就不走了,把返回的内容截断一些就可以了。但是,直接截断好像太暴力了吧!

#9


在后台校验数据返回个是否成功的结果回来就好了,也不会有很多数据

#10


但是需求上要求对每一行的错误要有明确的提示, 比如,用户一次导入了4000条数据,如果有错误,直接提示数据有误,请检查,这样体验太差了吧

#11


引用 10 楼 gavinwwl 的回复:
但是需求上要求对每一行的错误要有明确的提示, 比如,用户一次导入了4000条数据,如果有错误,直接提示数据有误,请检查,这样体验太差了吧

你可以返回前n个错误并且停止检查,很多错误是相似的,提示用户检查就可以了,也不都是傻子

#12


引用 11 楼 apollokk 的回复:
Quote: 引用 10 楼 gavinwwl 的回复:

但是需求上要求对每一行的错误要有明确的提示, 比如,用户一次导入了4000条数据,如果有错误,直接提示数据有误,请检查,这样体验太差了吧

你可以返回前n个错误并且停止检查,很多错误是相似的,提示用户检查就可以了,也不都是傻子


目前是这样做的,不过我还是很想知道,这个原因是什么,是否可以解决掉?

#13


该回复于2015-01-15 09:48:03被管理员删除

#14


Excel加载完以后,在内存中做分页处理吧

#15


你在服务端生成一个临时的html文件,记录错误信息,完了把地址发给客户端,客户端转到错误信息页去看

#16


引用 3 楼 gavinwwl 的回复:
功能是已经实现的, 我的问题是,后端返回的data太长了,然后 onUploadSuccess 这个事件就不进了。不知道是MVC的问题,还是这个插件的限制?
  我也出现了这个问题,虽然该贴已经过去1年,还是希望说说怎么处理的。返回参数过长时,直接执行上传失败方法onUploadError

#17


有类似错误,当视频比较大的时候,页面显示上传成功,实际还是一点点的在往服务器上上传

推荐阅读
  • Voicewo在线语音识别转换jQuery插件的特点和示例
    本文介绍了一款名为Voicewo的在线语音识别转换jQuery插件,该插件具有快速、架构、风格、扩展和兼容等特点,适合在互联网应用中使用。同时还提供了一个快速示例供开发人员参考。 ... [详细]
  • Html5-Canvas实现简易的抽奖转盘效果
    本文介绍了如何使用Html5和Canvas标签来实现简易的抽奖转盘效果,同时使用了jQueryRotate.js旋转插件。文章中给出了主要的html和css代码,并展示了实现的基本效果。 ... [详细]
  • 基于layUI的图片上传前预览功能的2种实现方式
    本文介绍了基于layUI的图片上传前预览功能的两种实现方式:一种是使用blob+FileReader,另一种是使用layUI自带的参数。通过选择文件后点击文件名,在页面中间弹窗内预览图片。其中,layUI自带的参数实现了图片预览功能。该功能依赖于layUI的上传模块,并使用了blob和FileReader来读取本地文件并获取图像的base64编码。点击文件名时会执行See()函数。摘要长度为169字。 ... [详细]
  • PHP图片截取方法及应用实例
    本文介绍了使用PHP动态切割JPEG图片的方法,并提供了应用实例,包括截取视频图、提取文章内容中的图片地址、裁切图片等问题。详细介绍了相关的PHP函数和参数的使用,以及图片切割的具体步骤。同时,还提供了一些注意事项和优化建议。通过本文的学习,读者可以掌握PHP图片截取的技巧,实现自己的需求。 ... [详细]
  • 如何使用Java获取服务器硬件信息和磁盘负载率
    本文介绍了使用Java编程语言获取服务器硬件信息和磁盘负载率的方法。首先在远程服务器上搭建一个支持服务端语言的HTTP服务,并获取服务器的磁盘信息,并将结果输出。然后在本地使用JS编写一个AJAX脚本,远程请求服务端的程序,得到结果并展示给用户。其中还介绍了如何提取硬盘序列号的方法。 ... [详细]
  • 展开全部下面的代码是创建一个立方体Thisexamplescreatesanddisplaysasimplebox.#Thefirstlineloadstheinit_disp ... [详细]
  • FeatureRequestIsyourfeaturerequestrelatedtoaproblem?Please ... [详细]
  • 利用Visual Basic开发SAP接口程序初探的方法与原理
    本文介绍了利用Visual Basic开发SAP接口程序的方法与原理,以及SAP R/3系统的特点和二次开发平台ABAP的使用。通过程序接口自动读取SAP R/3的数据表或视图,在外部进行处理和利用水晶报表等工具生成符合中国人习惯的报表样式。具体介绍了RFC调用的原理和模型,并强调本文主要不讨论SAP R/3函数的开发,而是针对使用SAP的公司的非ABAP开发人员提供了初步的接口程序开发指导。 ... [详细]
  • 本文总结了在开发中使用gulp时的一些技巧,包括如何使用gulp.dest自动创建目录、如何使用gulp.src复制具名路径的文件以及保留文件夹路径的方法等。同时介绍了使用base选项和通配符来保留文件夹路径的技巧,并提到了解决带文件夹的复制问题的方法,即使用gulp-flatten插件。 ... [详细]
  • 导出功能protectedvoidbtnExport(objectsender,EventArgse){用来打开下载窗口stringfileName中 ... [详细]
  • 本文讨论了如何在codeigniter中识别来自angularjs的请求,并提供了两种方法的代码示例。作者尝试了$this->input->is_ajax_request()和自定义函数is_ajax(),但都没有成功。最后,作者展示了一个ajax请求的示例代码。 ... [详细]
  • 在JavaScript中,函数没有重载的概念,如果声明了多个重名的函数,不管函数的形参个数是否一样,只有最后一个有效。如果调用函数时传入的参数个数与函数定义时的参数个数不符,会出现不同的情况。函数调用时,传入的参数个数少于函数定义时的参数个数,未传入的参数会被当做undefined处理,可能会导致错误。而传入的参数个数多于函数定义时的参数个数,多余的参数不会被使用,但不会报错。 ... [详细]
  • 本文介绍了如何使用jQuery和AJAX来实现动态更新两个div的方法。通过调用PHP文件并返回JSON字符串,可以将不同的文本分别插入到两个div中,从而实现页面的动态更新。 ... [详细]
  • 本文介绍了一个免费的asp.net控件,该控件具备数据显示、录入、更新、删除等功能。它比datagrid更易用、更实用,同时具备多种功能,例如属性设置、数据排序、字段类型格式化显示、密码字段支持、图像字段上传和生成缩略图等。此外,它还提供了数据验证、日期选择器、数字选择器等功能,以及防止注入攻击、非本页提交和自动分页技术等安全性和性能优化功能。最后,该控件还支持字段值合计和数据导出功能。总之,该控件功能强大且免费,适用于asp.net开发。 ... [详细]
  • jQuery实现简单的动画效果及用法详解
    本文详细介绍了使用jQuery实现简单动画效果的方法,包括显示/隐藏、向上收缩/向下展开、淡入/淡出、自定义动画等。同时提供了具体的用法示例,并解释了参数的含义和使用技巧。通过本文的学习,读者可以掌握如何使用jQuery实现各种动画效果,为网页增添生动和互动性。 ... [详细]
author-avatar
Wo-们是平行线
这个家伙很懒,什么也没留下!
Tags | 热门标签
RankList | 热门文章
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有