您的位置:首页 > Web前端 > JavaScript

上传文件中使用ajaxfileupload.js碰到的问题

2015-11-04 21:42 741 查看
在做上传图片时需要用到异步上传值服务器,当时选用了ajax的ajaxfileupload可以上传。

这里写下踩过的坑

1:使用
$.ajaxFileUpload({});
函数,网页报错,提示没有这个函数。

解决:导入ajaxfileupload.js文件。简单

2:上传成功了没有执行回调,即$.ajaxFileUpload({

url:”, //你处理上传文件的服务端

type: ‘POST’,

fileElementId:’file’,#文件在html中的id

dataType: ‘json’,

data:{需要上传的数据},#可以省略

success: function(data) {

},

failure: function(data) {

}

});中success函数。上网查,说是需要修改ajaxfileupload.js的源代码。好吧试试

在uploadHttpData: function( r, type ) {

var data = !type;

data = type == “xml” || data ? r.responseXML : r.responseText;

if ( type == “json” )

eval( “data = ” + data );

},

看eval函数代码

function eval(s){return new Object();};

什么都没有返回,注释掉,网上说换成这个

if ( type == "json" ) { data = data.replace("<pre>","").replace("</pre>","");}


这个data.replace("<pre>","").replace("</pre>","");replace是因为文件上传的话返回的json字符串会带有<pre>开头的一串字符,但是我没有得到过哦。所以可以这样写:


if ( type == "json" ) { data = data;}


这样就可以执行回调函数了。


3:上传的文件或者图片大于2M报错,提示文件太大。哎呀,现在的图片那个不是2,3M的,矫情!

解决:其实这里也不是矫情,应该是一种保护措施,因为如果文件太多,太大就会占用服务器的空间,所以能够压缩是最好的。特别是图片这种,更要压缩。

如果可以上传这么大的文件可以在struts文件里加上这个。500M都可以了。哈哈(这里有很多种解决办法,可以上网搜索哦)

好了,结束收工!

附上ajaxfileuploa.js文件(修改后的)http://download.csdn.net/detail/u011575570/9241787
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  ajax 异步