中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

springMVC + easyui + $.ajaxFileUpload實現文件上傳注意事項有哪些

發布時間:2021-07-07 14:01:27 來源:億速云 閱讀:124 作者:小新 欄目:web開發

這篇文章主要介紹springMVC + easyui + $.ajaxFileUpload實現文件上傳注意事項有哪些,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

在使用easyUI做前端樣式展示時,遇到了文件上傳的問題,而且是在彈出層中提交表單,想做到不刷新頁面,所以選擇了使用ajaxFileUpload插件。提交表單時一直發現后臺接收不到文件,后檢查發現,原來是文件的id不對。

文件上傳框我們定義如下:

<input class="easyui-filebox" id="image" name="image" data-options="label:'產品圖片:',buttonText:'瀏覽',prompt:'僅支持jpg、gif、png等格式的圖片',required:true">

提交的方式如下:

$.ajaxFileUpload({
  type:'POST',
  url : '${pageContext.request.contextPath}/product/saveProduct',
  secureuri : false,
  data : queryFormParam('#formId'),//需要傳遞的數據 json格式
  fileElementId :'image',
  dataType : 'json',
  success : function(data) { //上傳成功后的回調。
    if(data.status){
      $.messager.alert("提示","保存成功");
    }else {
      $.messager.alert("提示","保存失敗");
    }
  },
  error : function(data) {
    $.messager.alert("提示","異常,請稍后再試!");
  }
});

檢查后發現,因easyui-filebox樣式使用時,easyUI的js會為其創建一個type="file"的input,并且id也是easyUI定義的,自定義的id無效,可在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;
};

表單中可以定義多個filebox,并且filebox的id為filebox_file_id_+序號,如果只有一個,那就是filebox_file_id_1,因我這邊只有一個,然后將ajaxFileUpload提交時的fileElementId 改成‘filebox_file_id_1',后臺就接收到image值了。

這個是看源碼知道的,如果不看源碼,其實可以直接用jQuery的方式獲得id,如下:

var image_id= $("input[name='image']").attr("id");

因image名字在我的表單中是唯一的,所以通過名字來獲得id,然后將id填入ajaxFileUpload的fileElementId 中即可達到同樣的效果。

springMVC后臺采用的是CommonsMultipartFile來接收文件,如下,得到路徑后,用image.transferTo(saveDir);保存即可。

@RequestParam("image") CommonsMultipartFile image

以上是“springMVC + easyui + $.ajaxFileUpload實現文件上傳注意事項有哪些”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

桦甸市| 正镶白旗| 阳泉市| 曲靖市| 西吉县| 桑日县| 梧州市| 高邮市| 布尔津县| 庆云县| 桐梓县| 寿宁县| 廉江市| 工布江达县| 南皮县| 东明县| 阿坝县| 高雄县| 定襄县| 汾阳市| 白山市| 嘉兴市| 洪湖市| 滁州市| 泰兴市| 淮安市| 墨江| 师宗县| 弋阳县| 洞头县| 蒲城县| 上饶市| 军事| 武宣县| 静海县| 泽库县| 信丰县| 杂多县| 土默特左旗| 巩留县| 太原市|