溫馨提示×

溫馨提示×

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

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

ajaxfileupload.js怎么實現(xiàn)上傳文件功能

發(fā)布時間:2021-04-19 16:31:10 來源:億速云 閱讀:244 作者:小新 欄目:web開發(fā)

這篇文章將為大家詳細講解有關ajaxfileupload.js怎么實現(xiàn)上傳文件功能,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

使用ajaxfileupload.js實現(xiàn)上傳文件功能

一、ajaxFileUpload是一個異步上傳文件的jQuery插語法:$.ajaxFileUpload([options])

options參數(shù)說明:

1、url           上傳處理程序地址
2、fileElementId      文件選擇框的id屬性,即的id
3、secureuri        是否啟用安全提交,默認為false
4、dataType        服務器返回的數(shù)據(jù)類型。可以為xml,script,json,html。如果不填寫,jQuery會自動判斷
5、success        服務器響應成功后的處理函數(shù) ,參數(shù)data就是服務器返回的數(shù)據(jù)
6、error          服務器響應失敗后的處理函數(shù)
7、data           自定義參數(shù),當有數(shù)據(jù)要和上傳的文件一起傳到后臺處理的時候會用到。這里注意,數(shù)據(jù)格式比較嚴格{param:[{‘param1':'value1','param2':'value2' },{‘param1':'value3','param2':'value4' }]}, 其中單引號不能改為雙引號
8、type           提交數(shù)據(jù)的方式,一般為post

二、使用方法

第一步、先引入jquery和ajaxFileUpload插件,注意先后順序:

<script type="text/javascript" src="js/jquery-1.10.2.min.js"></script> 
<script type= "text/javascript" src= "js/ajaxfileupload.js" ></script>

第二步、html代碼

原始的,控件展示效果如下:

因為原始控件的樣式無法改變,所以我們一般會讓這個標簽隱藏,然后點擊別的標簽來觸發(fā)上傳控件。

<input type ="file" id="ImportPicInput" name= "myfile"  /> 
<div class ="input-append"> 
<label for ="importPicName"> 上傳原始圖片:</label > 
<input type ="text" class="input-large" id= "importPicName" /> 
<a class ="btn btn-default" onclick= "$('#ImportPicInput').click();" > 打開</a> 
</div >

展現(xiàn)的頁面效果:

第三步、js代碼

在用戶選擇完上傳圖片后,需要把圖片名稱顯示到輸入框中,還需要在js文件中加入代碼:

$(document).ready(function(e) { 
  $('body').on('change',$('#ImportPicInput'),function(){ 
   $( "#importPicName").val($( "#ImportPicInput").val()); 
  }); 
});

上傳文件的js代碼:

$.ajaxFileUpload({ 
 type: "POST", 
 url: "/toolkit/importPicFile.do", 
 data:{picParams:text},//要傳到后臺的參數(shù),沒有可以不寫 
 secureuri : false,//是否啟用安全提交,默認為false 
 fileElementId:'ImportPicInput',//文件選擇框的id屬性 
 dataType: 'json',//服務器返回的格式 
 async : false, 
 success: function(data){ 
  if(data.result=='success'){ 
   //coding 
  }else{ 
   //coding 
  } 
 }, 
 error: function (data, status, e){ 
  /coding 
 } 
});

第四步、java代碼

@RequestMapping(value="/importPicFile.do" ,produces="text/html;charset=utf-8" ) 
 public @ResponseBody String importPicFile1(@RequestParam("picParams") String picParams, 
@RequestParam MultipartFile myfile,HttpServletRequest request){ 

   Map<String,Object> map= new HashMap<String,Object>(); 
    if(myfile.isEmpty()){ 
     map.put( "result", "error"); 
     map.put( "msg", "上傳文件不能為空" ); 
   } else{ 
     String originalFilename=myfile.getOriginalFilename(); 
     String fileBaseName=FilenameUtils.getBaseName(originalFilename); 
     String floderName=fileBaseName+"_" +DateUtil.getNowTimeData(); 
     try{ 

      String genePicPath=request.getSession().getServletContext().getRealPath("/upload/" +floderName); 
       //把上傳的圖片放到服務器的文件夾下 
      FileUtils. copyInputStreamToFile(myfile.getInputStream(), new File(genePicPath,originalFilename)); 
       //coding 
      map.put( "result", "success"); 

     } catch (Exception e) { 
      map.put( "result", "error"); 
      map.put( "msg",e.getMessage()); 

     } 
   } 
   String result=String. valueOf(JSONObject.fromObject (map)); 
    return result; 
  }

三、注意點

(1)上文html中控件的css樣式,都是用的bootstrap框架里的基本樣式,也可以不用使用bootstrap框架,僅做參考。
(2)之前用的live方法,前臺js報錯說找不到這個方法,后來查了資料才發(fā)現(xiàn),1.9以上的jquery版本已經(jīng)廢棄live這個方法了

$(document).ready(function(e) { 
 $('#ImportPicInput ').live( 'change', function(){ 

  }) 
});

(3)文件選擇框必須要有name,即,且java代碼中的變量要跟name的值保持一致,即@RequestParam MultipartFile myfile,這點非常的重要。

關于“ajaxfileupload.js怎么實現(xiàn)上傳文件功能”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。

向AI問一下細節(jié)

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

AI