贝利信息

HTML5如何上传视频到服务器_HTML5视频上传实现法【媒体】

日期:2026-01-17 00:00 / 作者:蓮花仙者
HTML5用上传视频最直接,需加accept="video/*"并用JS校验file.type和文件后缀,大文件须预检体积,用FormData+fetch发送且不设Content-Type,注意Nginx和后端配置。

HTML5里用 选视频文件最直接

浏览器原生支持视频上传,不需要额外库。关键在于限制类型和校验,避免用户误选非视频文件。

FormData + fetch 发送视频到后端最稳妥

别用 XMLHttpRequest 手动设 header——FormData 会自动处理 boundary,fetch 更简洁且默认兼容 multipart/form-data。

const fileInput = document.querySelector('input[type="file"]');
const uploadBtn = document.querySelector('#upload');

uploadBtn.addEventListener('click', async () => { const file = fileInput.files[0]; if (!file) return;

const formData = new FormData(); formData.append('video', file); // 'video' 要和后端字段名一致

try { const res = await fetch('/api/upload', { method: 'POST', body: formData // 不要设 Content-Type,让浏览器自动生成 }); const data = await res.json(); } catch (err) { console.error('上传失败:', err); } });

上传失败常见原因:后端没配好或前端没容错

90% 的“上传不了”问题不在 HTML 或 JS,而在服务端配置或网络拦截。

移动端真机上传视频要注意 MIME 类型识别不准

iOS Safari 和部分安卓 WebView 上传相册视频时,file.type 经常是空字符串或 application/octet-stream,光靠 type 判断会失败。

实际部署时最容易被忽略的是 Nginx 的 client_max_body_size 和后端 multipart 解析中间件是否真正生效——前端传得再对,后端卡在网关或解析层,日志里往往只报 400 或超时。