ThinkPHP 是一个流行的 PHP 开发框架,它提供了丰富的功能和组件来简化 Web 应用的开发。上传视频进度条是一个用户界面元素,用于显示视频文件上传的进度,提升用户体验。
使用 HTML 和 JavaScript 可以实现一个简单的上传进度条。以下是一个示例:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Upload Progress Bar</title>
<style>
#progress {
width: 100%;
background-color: #ddd;
}
#bar {
width: 0%;
height: 30px;
background-color: #4CAF50;
text-align: center;
line-height: 30px;
color: white;
}
</style>
</head>
<body>
<form action="upload.php" method="post" enctype="multipart/form-data">
<input type="file" name="video">
<input type="submit" value="Upload">
</form>
<div id="progress">
<div id="bar">0%</div>
</div>
<script>
document.querySelector('form').addEventListener('submit', function(event) {
event.preventDefault();
var formData = new FormData(this);
var xhr = new XMLHttpRequest();
xhr.open('POST', 'upload.php', true);
xhr.upload.onprogress = function(event) {
if (event.lengthComputable) {
var percentComplete = (event.loaded / event.total) * 100;
document.getElementById('bar').style.width = percentComplete + '%';
document.getElementById('bar').innerHTML = percentComplete.toFixed(2) + '%';
}
};
xhr.send(formData);
});
</script>
</body>
</html>
在后端,可以使用 ThinkPHP 的文件上传功能,并记录上传进度。以下是一个简单的示例:
<?php
namespace app\index\controller;
use think\Controller;
use think\Request;
class Upload extends Controller
{
public function index(Request $request)
{
if ($request->isPost()) {
$file = $request->file('video');
if ($file) {
$info = $file->move(ROOT_PATH . 'public' . DS . 'uploads');
if ($info) {
return json(['code' => 1, 'msg' => 'Upload success', 'data' => $info->getSaveName()]);
} else {
return json(['code' => 0, 'msg' => $file->getError()]);
}
}
}
}
}
通过以上方法,你可以实现一个基本的上传视频进度条功能,并解决常见的上传问题。
没有搜到相关的文章