前言:
现时各位老铁们对“php批量下载远程文件夹”大致比较注重,看官们都需要学习一些“php批量下载远程文件夹”的相关内容。那么小编同时在网摘上汇集了一些关于“php批量下载远程文件夹””的相关文章,希望各位老铁们能喜欢,你们快快来学习一下吧!我们做外贸独立站通常网站搬家,要从服务器上下载到本地,然后又从本地上传到新的服务器,如果是2台在外国的服务器,这样操作这实在是太慢了。
我们直接利用新旧服务器互传。
在这个例子中,我添加了一个进度条的HTML和CSS部分,以及一个JavaScript函数 updateProgressBar,该函数用于更新进度条的状态。progressCallback 函数在下载过程中通过调用该JavaScript函数来更新进度条的状态。这样,你就可以在页面上看到一个动态的进度条。但由于PHP是服务器端语言,而浏览器是在收到完整响应后才开始渲染页面的,因此在文件下载过程中动态显示进度条可能会有些困难。
直接创建一个PHP文件,如download.php 写入以下代码,上传到新服务器,运行https://域名/download.php 打开
<?phpif ($_SERVER["REQUEST_METHOD"] == "POST") { // 获取用户输入的下载地址 $fileUrl = $_POST["fileUrl"]; // 检查下载地址是否为空 if (empty($fileUrl)) { echo "请提供文件下载地址。"; } else { // 获取文件名 $fileName = basename($fileUrl); // 保存文件到当前目录 $savedFilePath = __DIR__ . '/' . $fileName; // 初始化cURL会话 $ch = curl_init($fileUrl); // 打开文件句柄用于保存文件 $fileHandle = fopen($savedFilePath, 'w'); // 设置cURL参数 curl_setopt($ch, CURLOPT_RETURNTRANSFER, false); curl_setopt($ch, CURLOPT_NOPROGRESS, false); curl_setopt($ch, CURLOPT_PROGRESSFUNCTION, 'progressCallback'); curl_setopt($ch, CURLOPT_FILE, $fileHandle); // 执行cURL会话 curl_exec($ch); // 关闭文件句柄 fclose($fileHandle); // 关闭cURL会话 curl_close($ch); // 检查文件是否成功保存 if (file_exists($savedFilePath)) { echo "文件下载成功。"; } else { echo "文件下载失败。"; } }}function progressCallback($resource, $download_size, $downloaded, $upload_size, $uploaded) { if ($download_size > 0) { $progress = round(($downloaded / $download_size) * 100, 2); echo "<script>updateProgressBar({$progress})</script>"; ob_flush(); flush(); }}?><!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>远程文件下载</title> <style> #progress-container { width: 300px; border: 1px solid #ccc; margin-top: 10px; display: none; } #progress-bar { width: 0; height: 20px; background-color: #4CAF50; text-align: center; line-height: 20px; color: white; } </style></head><body> <h1>远程文件下载</h1> <form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>"> <label for="fileUrl">文件下载地址:</label> <input type="text" name="fileUrl" id="fileUrl" required> <button type="submit">下载文件</button> </form> <div id="progress-container"> <div id="progress-bar">0%</div> </div> <script> function updateProgressBar(progress) { var progressBar = document.getElementById("progress-bar"); progressBar.style.width = progress + "%"; progressBar.innerHTML = progress + "%"; if (progress === 100) { document.getElementById("progress-container").style.display = "none"; } else { document.getElementById("progress-container").style.display = "block"; } } </script></body></html>
填写远程下载的备份文件包,然后点击下载,下载完成后,提示“文件下载成功”。
最后,新服务器会多出你下载的文件包。
独立站-外贸独立站-跨境电商独立站-外贸独立建站-平台自建站-佛山美络云科技有限公司
版权声明:
本站文章均来自互联网搜集,如有侵犯您的权益,请联系我们删除,谢谢。
标签: #php批量下载远程文件夹