龙空技术网

好用到哭,超大网站搬家,远程下载文件

Mloun外贸建站 65

前言:

现时各位老铁们对“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批量下载远程文件夹