/*直接复制在自己的js文件中就能使用*/

jquery.extend({

createuploadiframe: function (id, uri) {

//create frame

var frameid = 'juploadframe' + id;

if (window.activexobject) {

var io = document.createelement('');

if (typeof uri == 'boolean') {

io.src = 'javascript:false';

}

else if (typeof uri == 'string') {

io.src = uri;

}

}

else {

var io = document.createelement('iframe');

io.id = frameid;

io.name = frameid;

}

io.style.position = 'absolute';

io.style.top = '-1000px';

io.style.left = '-1000px';

document.body.appendchild(io);

return io

},

createuploadform: function (id, fileelementid, data) {

//create form

var formid = 'juploadform' + id;

var fileid = 'juploadfile' + id;

var form = $('

');

var oldelement = $('#' + fileelementid);

var newelement = $(oldelement).clone();

$(oldelement).attr('id', fileid);

$(oldelement).before(newelement);

$(oldelement).appendto(form);

//增加文本参数的支持,修改本处,本处应有掌声

if (data) {

for (var i in data) {

var temp = $('');

temp.val(data[i]);

temp.appendto(form);

}

}

//set attributes

$(form).css('position', 'absolute');

$(form).css('top', '-1200px');

$(form).css('left', '-1200px');

$(form).appendto('body');

return form;

},

ajaxfileupload: function (s) {

// todo introduce global settings, allowing the client to modify them for all requests, not only timeout

s = jquery.extend({}, jquery.ajaxsettings, s);

var id = new date().gettime()

var form = jquery.createuploadform(id, s.fileelementid, s.data);

var io = jquery.createuploadiframe(id, s.secureuri);

var frameid = 'juploadframe' + id;

var formid = 'juploadform' + id;

// watch for a new set of requests

if (s.global && !jquery.active++) {

jquery.event.trigger("ajaxstart");

}

var requestdone = false;

// create the request object

var xml = {}

if (s.global)

jquery.event.trigger("ajaxsend", [xml, s]);

// wait for a response to come back

var uploadcallback = function (istimeout) {

var io = document.getelementbyid(frameid);

try {

if (io.contentwindow) {

xml.responsetext = io.contentwindow.document.body ? io.contentwindow.document.body.innerhtml : null;

xml.responsexml = io.contentwindow.document.xmldocument ? io.contentwindow.document.xmldocument :

io.contentwindow.document;

} else if (io.contentdocument) {

xml.responsetext = io.contentdocument.document.body ? io.contentdocument.document.body.innerhtml :

null;

xml.responsexml = io.contentdocument.document.xmldocument ? io.contentdocument.document.xmldocument

: io.contentdocument.document;

}

} catch (e) {

jquery.handleerror(s, xml, null, e);

}

if (xml || istimeout == "timeout") {

requestdone = true;

var status;

try {

status = istimeout != "timeout" ? "success" : "error";

// make sure that the request was successful or notmodified

if (status != "error") {

// process the data (runs the xml through httpdata regardless of callback)

var data = jquery.uploadhttpdata(xml, s.datatype);

// if a local callback was specified, fire it and pass it the data

if (s.success)

s.success(data, status);

// fire the global callback

if (s.global)

jquery.event.trigger("ajaxsuccess", [xml, s]);

} else

jquery.handleerror(s, xml, status);

} catch (e) {

status = "error";

jquery.handleerror(s, xml, status, e);

}

// the request was completed

if (s.global)

jquery.event.trigger("ajaxcomplete", [xml, s]);

// handle the global ajax counter

if (s.global && ! --jquery.active)

jquery.event.trigger("ajaxstop");

// process result

if (s.complete)

s.complete(xml, status);

jquery(io).unbind()

settimeout(function () {

try {

$(io).remove();

$(form).remove();

} catch (e) {

jquery.handleerror(s, xml, null, e);

}

}, 100)

xml = null

}

}

// timeout checker

if (s.timeout > 0) {

settimeout(function () {

// check to see if the request is still happening

if (!requestdone) uploadcallback("timeout");

}, s.timeout);

}

try {

// var io = $('#' + frameid);

var form = $('#' + formid);

$(form).attr('action', s.url);

$(form).attr('method', 'post');

$(form).attr('target', frameid);

if (form.encoding) {

form.encoding = 'multipart/form-data';

}

else {

form.enctype = 'multipart/form-data';

}

$(form).submit();

} catch (e) {

jquery.handleerror(s, xml, null, e);

}

if (window.attachevent) {

document.getelementbyid(frameid).attachevent('onload', uploadcallback);

}

else {

document.getelementbyid(frameid).addeventlistener('load', uploadcallback, false);

}

return { abort: function () { } };

},

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("

").html(data).evalscripts();

//alert($('param', data).each(function(){alert($(this).attr('value'));}));

return data;

*/

//修改后返回格式给成json

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 + ")");

}

})

/*==上面的代码直接复制在自己的js文件中就能使用==========================================================================================*/

/*js上传代码*/

$.ajaxfileupload({

type: "post",

contenttype: false,

enctype: "multipart/form-data",

url: "/url/路径",

data: { 参数名: json.stringify(参数名), 参数名: json.stringify(参数名) },//参数做json序列化(参数可以使对象、集合、字段)

secureuri: false,

fileelementid: 'file_name',

datatype: 'json',

async: false,

success: function (data) {

//关闭等待

maskutil.unmask();

if (data.issuccess) {

$.messager.alert('操作提示', data.message, 'info');

}

else {

$.messager.alert('操作提示', data.message, 'info');

}

}

});

/*个人心得

1.ajaxfileupload传参数时data:{后台接收的参数名:要传的参数对象},这里值需要做json序列化

2.ajaxfileupload返回值json格式,已在1.ajaxfileupload.js文件修改其返回值,

3.后台接收参数使用request["后台接收的参数名"],这里值需要做json返序列化

*/

希望与广大网友互动??

点此进行留言吧!

ajaxfileupload 返回值_ajaxFileUpload上传带参数,返回值改成json格式相关推荐

  1. ajaxfileupload 返回值_ajaxFileUpload 上传文件 以及 返回值 带 pre 标签问题

    $.ajaxFileUpload({ url:'upfile.action', secureuri:false, fileElementId:'inputpath', data:{"file ...

  2. ajaxfileupload 返回值_ajaxfileupload上传文件,返回json数据报错的问题。

    在使用ajaxfileupload上传文件的时候,文件上传成功了,但是返回的json数据一直解析不了.一直提示:Resource interpreted as Document but transfe ...

  3. ajaxfileupload 返回值_ajaxFileUpload上传文件成功后却无法解析服务器返回的json数据...

    ajaxFileUpload是一款很好用的文件上传插件,网上也有很多关于它的版本,但在上传文件成功后想返回json数据给前台时,却会出现无法解析json数据的情况. 仔细调试发现其实在向服务器提交数据 ...

  4. ajaxfileupload 返回值_ajaxFileUpload上传文件返回json无法解析

    最近做一个文件上传的功能,还要绑定数据传输到后台,为了不影响前端的体验,采用ajax发送请求.找了一些资料,网上的用ajaxupload这个插件. 但是无论成功还是失败都是执行的error的回调函数. ...

  5. 使用Moya封装上传带参数的文件

    不带参传输文件 return .uploadMultipart(getImagesData(imgs: [img])) 带参数传输文件 return .uploadCompositeMultipart ...

  6. java 参数返回_Java基础---Java中带参数返回值方法的使用(四十)

    Java 中带参带返回值方法的使用 如果方法既包含参数,又带有返回值,我们称为带参带返回值的方法. 例如:下面的代码,定义了一个 show 方法,带有一个参数 name ,方法执行后返回一个 Stri ...

  7. flex file 文件上传 带参数 php,php+flex打造多文件带进度超级上传

    以下为引用的内容: import com.newmediateam.fileIO.*; import flash.events.*; import flash.media.*; import flas ...

  8. php 上传文件写入失败,php $_FILES上传失败 error返回值说明

    用PHP上传文件时,我们会用程序去监听浏览器发送过来的文件信息,首先会通 过$_FILES[fieldName]['error']的不同数值来判断此欲上传的文件状态是否正常. $_FILES[fiel ...

  9. java方法带参数返回值_Java方法中的参数太多,第6部分:方法返回

    java方法带参数返回值 在当前的系列文章中,我正在致力于减少调用Java方法和构造函数所需的参数数量,到目前为止,我一直专注于直接影响参数本身的方法( 自定义类型 , 参数对象 , 构建器模式 , ...

  10. ajax值上传不过去,ajax上传时参数提交不更新等相关问题

    先前,我从网上下载了一个jQuery的Ajax上传插件,网页的左侧是上传分类,想要实现的一个功能是如此这样的:我本来是打算在服务端根据上传分类建立不同的文件夹来保存文件的,因此这个就需要传一个上传分类 ...

最新文章

  1. nginx防止高负载的解决方案(sysgurad模块)
  2. php mysql商品管理_PHP基础示例:商品信息管理系统v1.1[转]
  3. PHP的echo和print小谈
  4. MySQL 高级 - 存储过程 - 语法 - loop循环
  5. 查看apache连接数及apache工作原理
  6. linux bash source 0,linux中BASH_SOURCE[0](转)
  7. 北理工计算机专业汇编教材,李元章_北京理工大学计算机学院
  8. bzoj 1665: [Usaco2006 Open]The Climbing Wall 攀岩(最短路)
  9. 使用tcl 创建vivado工程
  10. IIS6.0相关漏洞复现
  11. 软件测试kpi指标,测试管理之绩效考核指标
  12. 斐讯设备远程控制教程(以K3、N1为例)
  13. APP首次启动提示开启定位服务
  14. 机械臂抓取学习笔记三
  15. SQL面试问题及回答
  16. 武汉星起航跨境电商到底靠不靠谱?亚马逊跨境收款方式有哪些?
  17. 【2021】网络协议从入门到底层原理-MJ【新】附上下载链接
  18. 爬取最好大学网排名数据
  19. 京东如何处理数据中心网络对于应用性能的影响
  20. 好书推荐——厚黑学全书 (作者 李宗吾)

热门文章

  1. 洛谷 U5737 纸条
  2. ServiceStack.Redis之IRedisClient(转载)
  3. 授权其他数据库用户kill session
  4. SQL语句处理一些修改、新增、删除、修改属性操作(MySql)
  5. 详解 ASP.NET并行,异步,多线程
  6. Jug 并行处理框架
  7. .net 常识 impersonate user 模拟用户
  8. 复杂车间调度问题三维析取图建模系列预告
  9. retinex算法小感
  10. 【OpenCV】分离多通道图像RGB的值