在做上传图片时需要用到异步上传值服务器,当时选用了ajax的ajaxfileupload可以上传。@H_404_1@这里写下踩过的坑@H_404_1@1:使用$.ajaxFileUpload({});
函数,网页报错,提示没有这个函数。@H_404_1@解决:导入ajaxfileupload.js文件。简单@H_404_1@2:上传成功了没有执行回调,即$.ajaxFileUpload({@H_404_1@url:”,//你处理上传文件的服务端@H_404_1@type: ‘POST’,@H_404_1@fileElementId:’file’,#文件在html中的id@H_404_1@dataType: ‘json’,@H_404_1@data:{需要上传的数据},#可以省略@H_404_1@success: function(data) {@H_404_1@},@H_404_1@failure: function(data) {@H_404_1@}@H_404_1@});中success函数。上网查,说是需要修改ajaxfileupload.js的源代码。好吧试试@H_404_1@在uploadHttpData: function( r,type ) {@H_404_1@var data = !type;@H_404_1@data = type == “xml” || data ? r.responseXML : r.responseText;@H_404_1@if ( type == “json” )@H_404_1@eval( “data = ” + data );@H_404_1@},@H_404_1@看eval函数代码@H_404_1@function eval(s){return new Object();};@H_404_1@什么都没有返回,注释掉,网上说换成这个
if(type=="json"){data=data.replace("<pre>","").replace("</pre>","");}
这个data.replace("<pre>","");replace是因为文件上传的话返回的json字符串会带有<pre>开头的一串字符,但是我没有得到过哦。所以可以这样写:
if(type=="json"){data=data;}
这样就可以执行回调函数了。
3:上传的文件大于2M报错,提示文件太大。哎呀,现在的图片那个不是2,3M的,矫情!@H_404_1@解决:在struts文件里加上这个。500M都可以了。哈哈(这里有很多种解决办法,可以上网搜索哦)@H_404_1@好了,结束手工!@H_404_1@附上ajaxfileuploa.js文件(修改后的)http://download.csdn.net/detail/u011575570/9241787