当前位置: 首页 > article >正文

大文件上传实现

大文件上传实现

1.将文件切割成多个小文件
2.将小文件上传到服务器
3.后端将小文件合并成一个大文件

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>大文件上传</title>
  </head>
  <body>
    <input type="file" id="file" />
    <button id="upload">上传</button>
    <script>
      const fileInput = document.getElementById("file");
      const uploadBtn = document.getElementById("upload");

      uploadBtn.addEventListener("click", () => {
        const file = fileInput.files[0];
        const chunkSize = 1024 * 1024; // 每个切片的大小为1MB
        const chunks = Math.ceil(file.size / chunkSize); // 计算切片的数量

        for (let i = 0; i < chunks; i++) {
          const start = i * chunkSize;
          const end = Math.min(start + chunkSize, file.size);
          const chunk = file.slice(start, end); // 切割文件

          // 将切片上传到服务器
          uploadChunk(chunk, i, chunks);
        }
      });

      function uploadChunk(chunk, index, totalChunks) {
        const formData = new FormData();
        formData.append("file", chunk);
        formData.append("index", index);
        formData.append("totalChunks", totalChunks);

        // 打印切片的信息
        console.log(`切片${index + 1}/${totalChunks}${chunk.size}字节`);

        // 发送POST请求将切片上传到服务器
        //   fetch("/upload", {
        //     method: "POST",
        //     body: formData,
        //   })
        //     .then((res) => res.json())
        //     .then((data) => {
        //       console.log(data);
        //     });
      }
    </script>
  </body>
</html>

原文地址:https://blog.csdn.net/weixin_44801790/article/details/146293658
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.kler.cn/a/589986.html

相关文章:

  • 推理大模型的后训练增强技术-从系统1到系统2:大语言模型推理能力的综述
  • 安卓屏保调试
  • 机试题——Devops 系统任务调度问题
  • 探索具身多模态大模型:开发、数据集和未来方向(下)
  • Node.js系列(1)--架构设计指南
  • Oracle 19c数据库REDO日志更换
  • 深度学习技巧
  • 【位运算】速算密钥:位运算探秘
  • 负载均衡nginx
  • 探索DB-GPT:革新数据库交互的AI原生框架
  • 【数据结构】如何解决二叉树在遍历查找前驱与后继的问题?线索二叉树来帮您……
  • browser_use 自动化浏览器agent使用案例
  • GBase8c 慢SQL配置
  • [CISSP] [2] 安全治理原则策略
  • Python中使用vlc库实现视频播放功能
  • STM32 DAC详解:从原理到实战输出正弦波
  • Description of a Poisson Imagery Super Resolution Algorithm 论文阅读
  • 深入解析网络相关概念​​
  • Unity Webgl在编辑器中报错:Cannot connect to destination host
  • 双模型协作机制的deepseek图片识别