要在 PHP 中实现上传进度条,可以使用以下步骤:
<form action="upload.php" method="post" enctype="multipart/form-data">
<input type="file" name="file" id="file">
<input type="submit" value="Upload" name="submit">
</form>
upload.php 文件中处理文件上传并显示进度条:<?php
if(isset($_POST['submit'])){
$file = $_FILES['file'];
// 获取文件信息
$fileName = $file['name'];
$fileTmpName = $file['tmp_name'];
$fileSize = $file['size'];
$fileError = $file['error'];
// 设置上传目录
$uploadDirectory = 'uploads/';
// 移动文件到上传目录
if(move_uploaded_file($fileTmpName, $uploadDirectory . $fileName)){
echo 'File uploaded successfully.';
}else{
echo 'Error uploading file.';
}
}
?>
upload.php 文件中添加以下代码:<?php
if(isset($_POST['submit'])){
$file = $_FILES['file'];
// 获取文件信息
$fileName = $file['name'];
$fileTmpName = $file['tmp_name'];
$fileSize = $file['size'];
$fileError = $file['error'];
// 设置上传目录
$uploadDirectory = 'uploads/';
// 创建唯一的文件名
$fileExtension = pathinfo($fileName, PATHINFO_EXTENSION);
$newFileName = uniqid() . '.' . $fileExtension;
// 移动文件到上传目录
if(move_uploaded_file($fileTmpName, $uploadDirectory . $newFileName)){
echo 'File uploaded successfully.';
}else{
echo 'Error uploading file.';
}
}
?>
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
<script>
$(document).ready(function(){
$('form').submit(function(event){
event.preventDefault();
var formData = new FormData($(this)[0]);
$.ajax({
url: 'upload.php',
type: 'POST',
data: formData,
processData: false,
contentType: false,
xhr: function(){
var xhr = new window.XMLHttpRequest();
// 监听上传进度
xhr.upload.addEventListener('progress', function(event){
if(event.lengthComputable){
var percent = Math.round((event.loaded / event.total) * 100);
$('.progress-bar').width(percent + '%').text(percent + '%');
}
}, false);
return xhr;
},
success: function(response){
$('.progress-bar').width('100%').text('100%');
alert(response);
}
});
});
});
</script>
<div class="progress">
<div class="progress-bar" role="progressbar" aria-valuenow="0" aria-valuemin="0" aria-valuemax="100" style="width: 0%;">0%</div>
</div>
现在,当用户选择文件并点击上传按钮时,文件将以 Ajax 方式上传到服务器,并显示上传进度条。
上一篇:怎么用网页打开php项目
下一篇:PHP 电话号码匹配
Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站