讲师中心 微信公众号
AI工具推荐 视频效率加速

如何利用 CodeGeex 快速实现大文件分片上传的前后端逻辑代码

夏宇姑娘_8579

夏宇姑娘_8579

发布时间:2026-06-17 18:00:30

|

824人浏览过

|

来源于php中文网

原创

CodeGeex可生成基于Flask后端与JavaScript前端的分片上传代码:后端接收file_id、chunk_index、total_chunks及分片数据,按序保存并合并;前端用File API切片、Promise.allSettled并发控制上传,配合/init获取ID、/merge_status轮询状态、/download触发下载。

☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

如何利用 codegeex 快速实现大文件分片上传的前后端逻辑代码

需要在网页端上传几个GB的视频文件,但直接传会超时失败,必须用分片上传机制绕过HTTP超时和内存限制,CodeGeex能根据自然语言描述直接生成可运行的前后端分片上传代码。

后端:用 Flask 实现分片接收与合并逻辑

第一步:创建 Flask 应用并启用文件上传支持,安装依赖 pip install flask werkzeug

第二步:在 app.py 中定义 /upload 接口,接收三个关键参数:file_id(唯一标识本次上传)、chunk_index(当前分片序号)、total_chunks(总分片数)→ 用 request.form 获取;同时用 request.files['chunk'] 获取二进制分片数据

第三步:将每个分片按 file_id + chunk_index 命名,保存到 ./uploads/chunks/ 目录下,确保目录存在且有写权限 → 这一步不做校验会导致后续合并失败

第四步:当收到最后一个分片(chunk_index == total_chunks - 1)时,触发合并逻辑:遍历所有该 file_id 的分片文件,按序号升序读取→拼接写入 ./uploads/merged/{file_id},完成后删除所有分片文件 → 【必须按 chunk_index 数值排序,不能用 os.listdir() 默认顺序,否则视频会花屏】

第五步:返回 JSON {“status”: “success”, “file_id”: “xxx”},前端凭此 file_id 后续发起合并完成确认或下载请求

前端:用 JavaScript 实现文件切片与并发控制

方法一:原生 File API 切片上传

监听 input[type="file"] 的 change 事件,获取 File 对象 → 调用 slice(start, end) 方法按 5MB 每片切割(过大易失败,过小增加请求数)

对每个 Blob 分片构造 FormData,append('chunk', blob)、append('file_id', uuidv4())、append('chunk_index', i)、append('total_chunks', chunks.length) → 注意不要漏传 total_chunks,否则后端无法判断是否收齐

CodeGeex 2.21.0
CodeGeex 2.21.0

CodeGeeX 2.21.0是智谱AI推出的AI编程助手版本,对Inline Chat功能进行了重大优化,包括UI设计升级、支持流式输出以提升响应速度,并新增“查看思路”按钮以便理解代码原理。同时,该版本在编辑器中新增CodeLens控件,支持一键“解释”代码或“添加注释”。目前该工具对个人开发者免费开放。

下载

用 Promise.allSettled() 控制最多同时上传 3 个分片,避免浏览器连接数打满或服务端拒绝 → 这一步操作起来很简单,直接把文件拖进去就行。

方法二:使用 axios 封装上传函数

定义 uploadChunk(chunk, index, total, fileId) 函数,内部用 axios.post('/upload', formData, { headers: { 'Content-Type': 'multipart/form-data' } }) → 必须显式设置 headers,否则 Flask 无法解析 multipart 数据

在 then 回调中检查响应 status 是否为 success,失败时重试最多 2 次 → 【重试需携带相同 chunk_index,否则后端会存重复分片】

前后端联调关键验证点

上传前先调用 /init 接口获取唯一 file_id,而不是前端自己生成 → 避免多个用户撞 ID 导致分片混杂

上传全部分片后,前端轮询 /merge_status?file_id=xxx,直到返回 merged:true → 不要直接跳转下载,必须等合并完成

合并后的文件名需从原始文件名推导(如 video.mp4 → video_abc123.mp4),保留扩展名 → 否则前端无法正确识别 MIME 类型触发下载

最后一步:访问 /download?file_id=xxx,后端以 send_file() 返回合并后文件,设置 as_attachment=True → 浏览器自动触发下载

热门AI工具

更多
WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

AionClaw
AionClaw Hot

AionClaw是一款面向办公、创作和编程任务的AI桌面智能体。

SkildArt
SkildArt Hot

SkildArt是一款AI文本写作工具,一站式 AI 视觉创作平台。

PixPix
PixPix Hot

PixPix是一款面向电商视觉生产的AI商品图生成工具。

VibeKnow
VibeKnow Hot

一款AI视频创作工具,主要用于全球首个AI知识视频创作平台,文档、文章、网页,一键生成视频,适合需要提升相关任务效率的用户。

咔片AIPPT

一款在线AI演示文稿制作工具,可根据主题和内容需求辅助生成PPT结构与页面,提高演示材料制作效率。

墨刀AI
墨刀AI Hot

一款AI图像与设计工具,主要用于产品经理的专属智能体,适合需要提升相关任务效率的用户。

相关专题

更多
python是前端还是后端
python是前端还是后端

Python属于前端也属于后端,其灵活性和丰富的生态系统使得开发人员能够在不同的领域中灵活运用。本专题为大家提供python相关的文章、下载、课程内容,供大家免费下载体验。

2163

2023.08.11

前端和后端的区别
前端和后端的区别

前端关注的是用户界面的设计和交互,而后端则注重数据处理和逻辑控制。想了解更多前端后端的相关内容,可以阅读本专题下面的文章。

5790

2024.03.19

后端的主要工作内容介绍
后端的主要工作内容介绍

后端是应用程序的服务端部分,负责核心任务,如数据库交互、业务逻辑处理和响应客户端请求。想了解更多后端的相关内容,可以阅读本专题下面的文章。

5086

2024.03.19

python是前端还是后端
python是前端还是后端

Python属于前端也属于后端,其灵活性和丰富的生态系统使得开发人员能够在不同的领域中灵活运用。本专题为大家提供python相关的文章、下载、课程内容,供大家免费下载体验。

2163

2023.08.11

前端和后端的区别
前端和后端的区别

前端关注的是用户界面的设计和交互,而后端则注重数据处理和逻辑控制。想了解更多前端后端的相关内容,可以阅读本专题下面的文章。

5790

2024.03.19

后端的主要工作内容介绍
后端的主要工作内容介绍

后端是应用程序的服务端部分,负责核心任务,如数据库交互、业务逻辑处理和响应客户端请求。想了解更多后端的相关内容,可以阅读本专题下面的文章。

5086

2024.03.19

CodeGeeX下载安装教程合集
CodeGeeX下载安装教程合集

提供CodeGeeX最新版下载地址、历史版本下载、VS Code安装教程、JetBrains安装教程及常见安装问题解决方案。

516

2026.06.16

CodeGeeX代码生成教程合集
CodeGeeX代码生成教程合集

汇总CodeGeeX代码生成技巧、代码补全教程、单元测试生成、代码优化及实际开发案例。

497

2026.06.16

PixTV AI视频生成与无限画布创作
PixTV AI视频生成与无限画布创作

PixTV专题整理AI视频与视觉内容创作相关功能使用教程,涵盖AI生图、视频生成、无限画布、多模型创作、素材管理、声音音乐及视频剪辑等功能,帮助用户快速掌握PixTV从创意到成片的完整制作方法。

0

2026.09.29

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
CodeGeex使用手册
CodeGeex使用手册

共0课时 | 0人学习

PHP会话控制/文件上传/分页技术
PHP会话控制/文件上传/分页技术

共22课时 | 2.9万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn