springMVC + easyui + $.ajaxFileUpload實(shí)現(xiàn)文件上傳注意事項(xiàng)
在使用easyUI做前端樣式展示時(shí),遇到了文件上傳的問(wèn)題,而且是在彈出層中提交表單,想做到不刷新頁(yè)面,所以選擇了使用ajaxFileUpload插件。提交表單時(shí)一直發(fā)現(xiàn)后臺(tái)接收不到文件,后檢查發(fā)現(xiàn),原來(lái)是文件的id不對(duì)。
文件上傳框我們定義如下:
<input class="easyui-filebox" id="image" name="image" data-options="label:'產(chǎn)品圖片:',buttonText:'瀏覽',prompt:'僅支持jpg、gif、png等格式的圖片',required:true">
提交的方式如下:
$.ajaxFileUpload({ type:'POST', url : '${pageContext.request.contextPath}/product/saveProduct', secureuri : false, data : queryFormParam('#formId'),//需要傳遞的數(shù)據(jù) json格式 fileElementId :'image', dataType : 'json', success : function(data) { //上傳成功后的回調(diào)。 if(data.status){ $.messager.alert("提示","保存成功"); }else { $.messager.alert("提示","保存失敗"); } }, error : function(data) { $.messager.alert("提示","異常,請(qǐng)稍后再試!"); } });
檢查后發(fā)現(xiàn),因easyui-filebox樣式使用時(shí),easyUI的js會(huì)為其創(chuàng)建一個(gè)type="file"的input,并且id也是easyUI定義的,自定義的id無(wú)效,可在easyUI的jquery.easyui.min.js中查看代碼如下:
(function($){ var _551=0; function _552(_553){ var _554=$.data(_553,"filebox"); var opts=_554.options; opts.fileboxId="filebox_file_id_"+(++_551); $(_553).addClass("filebox-f").textbox(opts); $(_553).textbox("textbox").attr("readonly","readonly"); _554.filebox=$(_553).next().addClass("filebox"); var file=_555(_553); var btn=$(_553).filebox("button"); if(btn.length){ $("<label class=\"filebox-label\" for=\""+opts.fileboxId+"\"></label>").appendTo(btn); if(btn.linkbutton("options").disabled){ file.attr("disabled","disabled"); }else{ file.removeAttr("disabled"); } } }; function _555(_556){ var _557=$.data(_556,"filebox"); var opts=_557.options; _557.filebox.find(".textbox-value").remove(); opts.oldValue=""; var file=$("<input type=\"file\" class=\"textbox-value\">").appendTo(_557.filebox); file.attr("id",opts.fileboxId).attr("name",$(_556).attr("textboxName")||""); file.attr("accept",opts.accept); if(opts.multiple){ file.attr("multiple","multiple"); } file.change(function(){ var _558=this.value; if(this.files){ _558=$.map(this.files,function(file){ return file.name; }).join(opts.separator); } $(_556).filebox("setText",_558); opts.onChange.call(_556,_558,opts.oldValue); opts.oldValue=_558; }); return file; };
表單中可以定義多個(gè)filebox,并且filebox的id為filebox_file_id_+序號(hào),如果只有一個(gè),那就是filebox_file_id_1,因我這邊只有一個(gè),然后將ajaxFileUpload提交時(shí)的fileElementId 改成‘filebox_file_id_1',后臺(tái)就接收到image值了。
這個(gè)是看源碼知道的,如果不看源碼,其實(shí)可以直接用jQuery的方式獲得id,如下:
var image_id= $("input[name='image']").attr("id");
因image名字在我的表單中是唯一的,所以通過(guò)名字來(lái)獲得id,然后將id填入ajaxFileUpload的fileElementId 中即可達(dá)到同樣的效果。
springMVC后臺(tái)采用的是CommonsMultipartFile來(lái)接收文件,如下,得到路徑后,用image.transferTo(saveDir);保存即可。
@RequestParam("image") CommonsMultipartFile image
以上所述是小編給大家介紹的springMVC + easyui + $.ajaxFileUpload實(shí)現(xiàn)文件上傳注意事項(xiàng),希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
- SpringMVC文件上傳 多文件上傳實(shí)例
- SpringMVC 文件上傳配置,多文件上傳,使用的MultipartFile的實(shí)例
- jquery.form.js框架實(shí)現(xiàn)文件上傳功能案例解析(springmvc)
- SpringMvc MultipartFile實(shí)現(xiàn)圖片文件上傳示例
- 使用jQuery.form.js/springmvc框架實(shí)現(xiàn)文件上傳功能
- springMVC實(shí)現(xiàn)前臺(tái)帶進(jìn)度條文件上傳的示例代碼
- SpringMVC使用MultipartFile實(shí)現(xiàn)文件上傳
- MyBatis與SpringMVC相結(jié)合實(shí)現(xiàn)文件上傳、下載功能
- SpringMVC文件上傳的配置實(shí)例詳解
- springmvc實(shí)現(xiàn)文件上傳功能
相關(guān)文章
JavaScript中極易出錯(cuò)的操作符運(yùn)算總結(jié)
這篇文章主要給大家介紹了關(guān)于JavaScript中極易出錯(cuò)的操作符運(yùn)算的相關(guān)資料,包括了算術(shù)運(yùn)算符、比較運(yùn)算符、邏輯運(yùn)算符、賦值運(yùn)算符、一元運(yùn)算符以及運(yùn)算優(yōu)先級(jí)等問(wèn)題,需要的朋友可以參考下2021-08-08JS獲取dom 對(duì)象 ajax操作 讀寫cookie函數(shù)
一些常用的JS (JONEAjax) 獲取dom 對(duì)象,ajax操作,讀寫cookie類代碼,需要的朋友可以參考下。2009-11-11Java通過(guò)WebSocket實(shí)現(xiàn)異步導(dǎo)出解決思路
這篇文章主要介紹了通過(guò)WebSocket實(shí)現(xiàn)異步導(dǎo)出,本篇文章記錄大批量數(shù)據(jù)導(dǎo)出時(shí)間過(guò)長(zhǎng),導(dǎo)致接口請(qǐng)求超時(shí)問(wèn)題,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2024-01-01封裝一個(gè)vue中也可使用的uniapp的全局彈窗組件(任何頁(yè)面都可以彈出)
在寫uniapp小程序的時(shí)候,彈窗提醒經(jīng)常會(huì)用到,雖然彈窗的組件很多,但是通常別人封裝好的彈窗組件自定義度不高,很難匹配自己的ui需求,這篇文章主要給大家介紹了封裝一個(gè)vue中也可使用的uniapp的全局彈窗組件的相關(guān)資料,這個(gè)組件在任何頁(yè)面都可以彈出,需要的朋友可以參考下2023-02-02JS實(shí)現(xiàn)點(diǎn)擊登錄彈出窗口同時(shí)背景色漸變動(dòng)畫效果
這篇文章主要介紹了JS實(shí)現(xiàn)點(diǎn)擊登錄彈出窗口同時(shí)背景色漸變動(dòng)畫效果,涉及JavaScript基于鼠標(biāo)事件及時(shí)間函數(shù)定時(shí)觸發(fā)形成漸變動(dòng)畫的相關(guān)技巧,需要的朋友可以參考下2016-03-03關(guān)于JS中setTimeout()無(wú)法調(diào)用帶參函數(shù)問(wèn)題的解決方法
這篇文章主要介紹了關(guān)于JS中setTimeout()無(wú)法調(diào)用帶參函數(shù)問(wèn)題的解決方法,提供了2種解決方法供大家對(duì)比參考,需要的朋友可以參考下2016-06-06JavaScript實(shí)現(xiàn)按照指定長(zhǎng)度為數(shù)字前面補(bǔ)零輸出的方法
這篇文章主要介紹了JavaScript實(shí)現(xiàn)按照指定長(zhǎng)度為數(shù)字前面補(bǔ)零輸出的方法,實(shí)例分析了javascript操作數(shù)字補(bǔ)零的技巧,需要的朋友可以參考下2015-03-03JavaScript實(shí)現(xiàn)同步于本地時(shí)間的動(dòng)態(tài)時(shí)間顯示方法
這篇文章主要介紹了JavaScript實(shí)現(xiàn)同步于本地時(shí)間的動(dòng)態(tài)時(shí)間顯示方法,實(shí)例分析了javascript獲取本地時(shí)間及動(dòng)態(tài)顯示的技巧,并對(duì)實(shí)現(xiàn)代碼進(jìn)行了較為詳盡的分析說(shuō)明,需要的朋友可以參考下2015-02-02js實(shí)現(xiàn)3D圖片環(huán)展示效果
本文主要介紹了js實(shí)現(xiàn)3D圖片環(huán)展示效果的實(shí)例,具有很好的參考價(jià)值。下面跟著小編一起來(lái)看下吧2017-03-03