前端夏老师------
<!DOCTYPE html>
<html>

<head>
  <title><%= title %></title>
  <link rel='stylesheet' href='/stylesheets/style.css' />
</head>

<body>
  <input type="file" id='input'>
  <button id="btn">按钮</button>
  <script>
    btn.addEventListener('click', upload);
    let chunk = 1024;
    let index = 0;
    function upload() {
      // 拿到当前的文件
      let file = input.files[0];
      // 每次的起始位置
      let start = chunk * index;
      // 因为文件是继承bold的二进制大对象所以当前就有size
      if (start > file.size) return;
      //获取文件名称
      let [name, ext] = file.name.split('.');

      //每次分片的大小
      let bold = file.slice(start, start + chunk);

      const formData = new FormData();

      //得到文件名称,index的目的是分片不重复
      let boldName = `${name}${index}.${ext}`;

      //需要在转换为文件对象
      let boldFile = new File([bold], boldName);

      formData.append('file', boldFile);

      fetch('/upload', {
        method: 'POST',
        body: formData
      }).then((res) => {
        index++;
        upload();
      })
    }
  </script>
</body>

</html>
Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐