您好,登錄后才能下訂單哦!
在做上傳圖片時需要用到異步上傳值服務器,當時選用了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
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。