input 文件監聽 以及上傳


文件上傳監聽 

 1 <a v-show="filesArr.length<5"   @click="fileUpLoad()">
 2                           點擊選中附件
 3 </a> 
 4    
 5 <div style="display:none;">
 6         <form  id = "form1" action="##"  method="post" enctype="multipart/form-data">
 7             <input multiple="multiple"  id="fileUP" type="file" onchange="fileChange()" name="file1" value="選擇文件" >
 8            
 9             <input type="button" value="上傳" onclick="fileUpLoad()">
10         </form>   
11 </div>

 觸發文件選擇框彈出

1 function fileUpLoad(){ //觸發 input的點擊事件,彈出文件選擇框2 
2     $("#fileUP").click();4 
3 }

 

文件監聽方法,頁面加載后執行:fileAddEventListener();
 1    var fileUP = document.getElementById('fileUP');
 2        fileUP.addEventListener('change', function() {
 3            var t_files = this.files;       
 4            if(t_files.length>5){
 5                t_files.value='';
 6                top.postMessage({func:'msg',data:{idNum:app.idnum,icon:'2',anim:'6',msg:'文件數量超限,最多支持5個文件!'}},"*");               
 7                console.log('文件數量超限,最多支持5個文件!');              
 8            };           
 9            //上傳文件  將文件存入新的數組,進行操作
10            for (var i = 0;i<t_files.length; i++) {
11                if(t_files[i].size/1024/1024<101){//單個文件限制100M
12                    app.filesArr.push(t_files[i]);
13                }else{
14                    var thisNames =t_files[i].name;
15                    var thisSize     =t_files[i].size/1024/1024+'MB';                  
16                    var msg ='存在超過100MB的單個文件!'
17                    top.postMessage({func:'msg',data:{idNum:app.idnum,icon:'2',anim:'6',msg:msg}},"*"); 
18                }               
19                };
20                //清空file
21             var file = document.getElementById("fileUP");
22              // for IE, Opera, Safari, Chrome
23              if (file.outerHTML) {
24                  file.outerHTML = file.outerHTML;
25              } else { // FF(包括3.5)
26                  file.value = "";
27              };
28              //再次設置監聽
29              fileAddEventListener();
30        }, false);
1  var form = new FormData();
2            
3             for (var i = 0;i<app.filesArr.length; i++) {
4             // 文件名稱,文件對象
5                 form.append(app.filesArr[i].name, app.filesArr[i]);
6             }
 1  $.ajax({
 2             //幾個參數需要注意一下
 3                 type: "POST",//方法類型
 4                 dataType: "json",//預期服務器返回的數據類型
 5                 url: "../../insertFile.action" ,//url
 6                 //data: $('#form1').serialize(),
 7                 data:form,
 8                 // contentType:"multipart/form-data",
 9                 contentType: false,
10                 processData: false,
11                 async: false,
12                // cache: false,
13                  success: function (json_data) {
14                        // alert("恭喜你!上傳成功");
15                            console.log(json_data);
16                            name= json_data;
17                     },
18                  error : function() {
19                      //alert("異常!");
20                     name= "";
21                 } 
22             });

 頁面提示:

  默認狀態:

    

  選擇1-4個文件時:

    

  選擇5個文件時:

   

文件名 file.name

文件大小file.size

 

文件批量下載方法

 1   function downloadFunc(name, href) {     
 2       var a = document.createElement("a"), //創建a標簽
 3           e = document.createEvent("MouseEvents"); //創建鼠標事件對象
 4       e.initEvent("click", false, false); //初始化事件對象
 5       a.href = href; //設置下載地址
 6       a.download = 'download'; //設置下載文件名
 7       a.dispatchEvent(e); //給指定的元素,執行事件click事件
 8   };
 9   function downName(hrefArr) {//hrefArr 地址數組../../downLoadFile.action?path=D:apache-tomcat-8.5.35webapps%255Cservice_file/20190415161813900_%25E6%2589%2593%25E4%25B8%258D%25E5%25BC%2580%2520.jpg&filename=20190415161813900_%25E6%2589%2593%2
10       for (let index = 0; index < hrefArr.length; index++) {
11           downloadFunc('第' + index + '個文件', hrefArr[index]);
12       }
13   }
14   

 


免責聲明!

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



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