1. <input type="file" id="file">
    2. <script>
    3. // blob类型把文件切成多个文件,二进制类型。
    4. // blob协议 具有上传到后端之前先把内容展示到页面的能力
    5. document.getElementById('file').addEventListener('change',(event) => {
    6. const file = event.target.files[0]
    7. console.log(file.slice(0,102400))
    8. console.log(Object.prototype.toString.call(file.slice(0,102400))) // [object Blob]
    9. /**
    10. * 通过bolb协议在图片未上传到服务器的时候直接显示出来
    11. */
    12. const URL = window.URL;
    13. const blobUrl = URL.createObjectURL(file)
    14. // blob协议创建出来的地址可以直接访问
    15. document.body.appendChild(
    16. document.createElement('img')
    17. ).src = blobUrl
    18. console.log(blobUrl);
    19. // 释放对象 为了提升性能和减少内存状态
    20. window.onload = function () {
    21. URL.revokeObjectURL(blobUrl)
    22. }
    23. /**
    24. * 切片
    25. */
    26. let cur = 0;
    27. let size = 1024 * 1024; // 1m
    28. // blob 数组存放多个切片
    29. const fileChunkList = []
    30. //
    31. while(cur < file.size){
    32. fileChunkList.push({
    33. file:file.slice(cur , cur + size)
    34. })
    35. cur += size
    36. }
    37. })
    38. </script>