首页 > 网站 > WEB开发 > 正文

[html5+java]文件异步读取及上传核心代码

2024-04-27 14:12:18
字体:
来源:转载
供稿:网友

[html5+java]文件异步读取及上传核心代码

html5+java文件异步读取及上传关键代码段

功能:

1.多文件文件拖拽上传,file input 多文件选择

2.html5 File Api 异步FormData,blob上传,图片显示

3.java端接受

核心代码:

1.拖拽代码段:

 1 <div id="dropzone"> 2     <div>Drag & drop your file here...</div> 3     <div id='showFile'></div> 4     <div style='clear: both'></div> 5 </div> 6  7 <script> 8     /*function for drag and drop*/ 9     window.onload = function() {10         var dropzone = document.getElementById("dropzone");11         dropzone.ondragover = dropzone.ondragenter = function(event) {12             event.PReventDefault();13             event.stopPropagation();14         }15         dropzone.ondrop = function(event) {16             event.preventDefault();17             var filesArray = event.dataTransfer.files;18             for ( var i = 0; i < filesArray.length; i++) {19                 var fObj = new fileObj(filesArray[i], idTmp);20                 // to do tasks with dropData21             }22             event.stopPropagation();23         }24     }25 </script>
View Code

file input 多文件选择:

 1 <p> 2 Upload File: <input id='uploadFile' type="file" name="file" multiple /> 3 </p> 4  5 <script> 6 $("#uploadFile").change(function(e) { 7     event.preventDefault(); 8     var filesArray = e.target.files; 9     for ( var i = 0; i < filesArray.length; i++) {10         var fObj = new fileObj(filesArray[i], idTmp);11         // to do tasks with dropData12         idTmp++;13     }14     event.stopPropagation();15 });16 </script>
View Code

2.html5 File Api 异步上传:

1).使用FormData上传

 1 <!DOCTYPE html> 2 <html> 3 <head> 4     <title>Upload Files using xmlHttpRequest - Minimal</title> 5  6     <script type="text/Javascript"> 7       function fileSelected() { 8         var file = document.getElementById('fileToUpload').files[0]; 9         if (file) {10           var fileSize = 0;11           if (file.size > 1024 * 1024)12             fileSize = (Math.round(file.size * 100 / (1024 * 1024)) / 100).toString() + 'MB';13           else14             fileSize = (Math.round(file.size * 100 / 1024) / 100).toString() + 'KB';15 16           document.getElementById('fileName').innerHTML = 'Name: ' + file.name;17           document.getElementById('fileSize').innerHTML = 'Size: ' + fileSize;18           document.getElementById('fileType').innerHTML = 'Type: ' + file.type;19         }20       }21 22       function uploadFile() {23         var fd = new FormData();24         fd.append("fileToUpload", document.getElementById('fileToUpload').files[0]);25         var xhr = new xmlhttpRequest();26         xhr.upload.addEventListener("progress", uploadProgress, false);27         xhr.addEventListener("load", uploadComplete, false);28         xhr.addEventListener("error", uploadFailed, false);29         xhr.addEventListener("abort", uploadCanceled, false);30         xhr.open("POST", "UploadMinimal.aspx");31         xhr.send(fd);32       }33 34       function uploadProgress(evt) {35         if (evt.lengthComputable) {36           var percentComplete = Math.round(evt.loaded * 100 / evt.total);37           document.getElementById('progressNumber').innerHTML = percentComplete.toString() + '%';38         }39         else {40           document.getElementById('progressNumber').innerHTML = 'unable to compute';41         }42       }43 44       function uploadComplete(evt) {45         /* This event is raised when the server send back a response */46         alert(evt.target.responseText);47       }48 49       function uploadFailed(evt) {50         alert("There was an error attempting to upload the file.");51       }52 53       function uploadCanceled(evt) {54         alert("The upload has been canceled by the user or the browser dropped the connection.");55       }56     </script>57 </head>58 <body>59 <form id="form1" enctype="multipart/form-data" method="post" action="upload.php">60 <div class="row">61       <label for="fileToUpload">Select a File to Upload</label>62 <input type="file" name="fileToUpload" id="fileToUpload" onchange="fileSelected();"/>63     </div>64 <div id="fileName"></div>65 <div id="fileSize"></div>66 <div id="fileType"></div>67 <div class="row">68 <input type="button" onclick="uploadFile()" value="Upload" />69     </div>70 <div id="progressNumber"></div>71 </form>72 73 </body>74 </html>
View Code

2).使用blob,readAsBinaryString上传

  1 <!DOCTYPE html>  2 <html>  3 <head>  4 <meta charset="UTF-8">  5 <title>HTML5 File Upload[By WangXinsheng]</title>  6 <script src="../js/jquery-1.11.1.min.js"></script>  7 </head>  8 <style>  9 #dropzone { 10     margin-top: 10px; 11     width: 500px; 12     min-height: 300px; 13     height: 100%; 14     border: 1px dotted grey; 15 } 16  17 header { 18     font-weight: bold; 19 } 20  21 .uploadFile { 22     display: inline; 23     float: left; 24     width: 45%; 25     border: 1px solid gray; 26     margin: 5px; 27     min-height: 20px; 28     padding-bottom: 5px; 29     padding-left: 5px; 30 } 31  32 .uploadFile p { 33     margin: 2px; 34 } 35  36 .uploadFile progress { 37     -webkit-appearance: none; 38 } 39 .uploadFile .ok{ 40     cursor:pointer; 41 } 42  43 .uploadFile ::-webkit-progress-inner-element { 44      45 } 46  47 .uploadFile ::-webkit-progress-bar { 48     background: white; 49     border: 1px solid gray; 50 } 51  52 .uploadFile ::-webkit-progress-value { 53     background: green; 54 } 55  56 .uploadFile ::-moz-progress-bar { 57     background: white 58 } 59  60 .uploadFile ::-ms-fill { 61     background: green; 62 } 63 </style> 64 <body> 65     <header>HTML5 File Upload</header> 66     <p> 67         Upload File: <input id='uploadFile' type="file" name="file" multiple /> 68     </p> 69  70     <div id="dropzone"> 71         <div>Drag & drop your file here...</div> 72         <div id='showFile'></div> 73         <div style='clear: both'></div> 74     </div> 75     <script> 76         var oneFileDom = "<div class='uploadFile' id='uf_{%id%}'>" 77         +"<p>{%name%}</p>" 78         +"<progress width='100%'></progress>" 79         +"<
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表