ajax多文件上傳,js原生ajax請求(轉)


 1       function uploadImageFile(){    
 2                 var xhr = new XMLHttpRequest();
 3                 //定義表單變量    
 4                 var file = document.getElementById('imageFiles').files;    
 5                 //新建一個FormData對象    
 6                 var formData = new FormData();
 7                 //追加文件數據    
 8                 for(i=0;i<file.length;i++){      
 9                      formData.append("file["+i+"]", file[i]);
10                 }     
11                     
12                 //post方式    
13                 xhr.open('POST', memberPath + "/backstage/photo/uploadPhoto.json"); 
14                 //發送請求    
15                 xhr.send(formData);
16                 //success回調    
17                 xhr.onreadystatechange = function(){
18                     if ( xhr.readyState == 4 && xhr.status == 200 ) {
19                         console.log( xhr.responseText );    
20                         var data = xhr.responseText;
21                         data = JSON.parse(xhr.responseText)    
22                         if (data.code == 100) {
23                             //insertPhotoList(data.userPhotos); 這里傳過來的是一個List<model>,做頁面邏輯處理的
24                         } else if (data.code == 101) {
25                             aler('上傳圖片不符合要求');
26                         } else if (data.code == 102){
27                             var update_vip_url = 'update_vip_url';
28                             alert('您目前是普通會員,圖片文件不可超過5M|升級會員可上傳更大文件立即升級會員');
29                         } else if (data.code == 103) {
30                             alert('您目前是VIP會員,圖片文件不可超過50M');
31                         }
32                         
33                     }
34                 };
35                 //設置超時時間    
36                 xhr.timeout = 100000;    
37                 xhr.ontimeout = function(event){}
38             }

這里是針對一個按鈕可多選的上傳,也就是input加上了 multiple="multiple" 屬性。change事件觸發的。后台用的springMVC框架。

 

1 MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;           
2 Iterator<String> names = multipartRequest.getFileNames();
3 
4 while (names.hasNext()) {
5                     String name = (String) names.next();
6                     MultipartFile multipartFile = multipartRequest.getFile(name);
7 }

這里用循環拿到文件,就可以進行上傳操作了。

 

這里只是工作中遇到了,記錄一下,考慮並不周全。js也是百度之后,找不到原頁了,所以就不附轉載地址了。見諒。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM