2013-09-25 110 views
0

我只是想知道我怎麼可能從html輸入文件獲取字節數組。從html文件獲取字節數組

的代碼如下:

<script type ="text/javascript">    

     $(document).ready(function() { 

      $('#cmdUpload').click(function() { 

       uploadFile(); 

      }); 

      function uploadFile() { 

       var file = $("#objFile")[0].files[0]; 




      } 
     }); 
    </script> 
     <body> 
    <input type ="file" id="objFile" size="50" /><br/><br/> 
    <input type ="button" id="cmdUpload" value="Upload"/> 
    </body> 

非常感謝

+0

你也可以在這裏提供html嗎? – Sunny

+0
+0

好,你想在哪裏調用uploadFile函數?意味着在objfile點擊或cmdUpload點擊? 。 – Sunny

回答

2

這是示例代碼被返回字節

使用Javascript:

<script type="text/javascript"> 
    $(document).ready(function() { 
     $('#cmdUpload').click(function() { 
      uploadFile(); 
     }); 

    }); 

    function uploadFile() { 
     var input = document.getElementById('objFile'); 
     // var file = $("#objFile")[0].files[0]; 
     var file = input.files[0]; 
     fr = new FileReader(); 
     fr.onload = receivedText; 
     //fr.readAsText(file); 
     fr.readAsDataURL(file); 
    } 

    function receivedText() { 
     var b64Data = fr.result.split(','); 
     var contentType = 'image/jpeg'; 
     //document.getElementById('editor').appendChild(document.createTextNode(fr.result)) 
     var byteCharacters = atob(b64Data[1]); 
     var byteNumbers = Array.prototype.map.call(byteCharacters, 
             charCodeFromCharacter); 
     var uint8Data = new Uint8Array(byteNumbers); 
     var blob = b64toBlob(b64Data[1], contentType); 
     var blobUrl = URL.createObjectURL(blob); 
    } 

    function charCodeFromCharacter(c) { 
     return c.charCodeAt(0); 
    } 

    function b64toBlob(b64Data, contentType, sliceSize) { 
     contentType = contentType || ''; 
     sliceSize = sliceSize || 1024; 
     var byteCharacters = atob(b64Data); 
     var byteArrays = []; 

     for (var offset = 0; offset < byteCharacters.length; offset += sliceSize) { 
      var slice = byteCharacters.slice(offset, offset + sliceSize); 
      var byteNumbers = Array.prototype.map.call(slice, charCodeFromCharacter); 
      var byteArray = new Uint8Array(byteNumbers); 
      byteArrays.push(byteArray); 
     } 
     for (var i = 0; i < byteArray.length; i++) { 
      alert(byteArray[i]); 
     } 

    } 
</script> 

HTML :

<div> 
    <input type="file" id="objFile" size="50" /><br /> 
    <br /> 
    <input type="button" id="cmdUpload" value="Upload" /> 
    <div id="editor"></div> 
</div> 

希望它能幫助你。請讓我知道進一步的幫助。

+0

我現在試一試,然後讓你知道。 – user2388013

+0

最後一件事是我可以包括多個文件類型,如gif,png etx – user2388013

+0

是的,你可以通過進一步拆分b64Data [0]來完成。請檢查b64Data [0]輸出並根據您的要求獲取值。 – Sunny