开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 2471|回复: 48
收起左侧

[其它源码] [PHP] 利用米哈游社区当网盘满速下载文件

[复制链接]
结帖率:100% (53/53)
发表于 2024-10-5 20:06:15 | 显示全部楼层 |阅读模式   湖南省永州市
分享源码
界面截图:
是否带模块: 纯源码
备注说明: -


利用米游社的图片上传机制,伪装上传文件,实现全速下载!

可以理解为把米哈游的服务器当网盘,然后自己上传文件,下载速度是全速满带宽拉满!

在线例子:https://uuub.net/

此为PHP源码,放到网站直接访问即可!懂的人可以写成易语言形式!!!


[PHP] 纯文本查看 复制代码
<?php
if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_FILES['file'])) {
    $file = $_FILES['file'];
    $url = file_get_contents('https://b.baipiao.wiki/link');
    // 已反代,源站https://video-oss.vercel.app/link
    $file_content = file_get_contents($file['tmp_name']);
    
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'PUT');
    curl_setopt($ch, CURLOPT_POSTFIELDS, $file_content);
    curl_setopt($ch, CURLOPT_HTTPHEADER, [
        'Content-Type: image/jpeg'
    ]);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    $response = curl_exec($ch);
    curl_close($ch);
    if($file['type'] === "image/jpeg"){
        $upload_url = $url;
    }else{
        $upload_url = $url . '?response-content-type=' . $file['type'];
    }
    if (strpos($upload_url, 'https://plat-sh-community-prod-upload-ugc.oss-cn-shanghai.aliyuncs.com/') !== false) {
        $upload_url = str_replace('https://plat-sh-community-prod-upload-ugc.oss-cn-shanghai.aliyuncs.com/', 'https://upload-bbs.miyoushe.com/', $upload_url);
    }
    
    echo json_encode(['upload_url' => htmlspecialchars($upload_url)]);
    exit;
}elseif(isset($_GET['down'])){
    header('Content-Type: application/octet-stream');
    header('Content-Disposition: attachment; filename="index.php"');
    header('Content-Transfer-Encoding: binary');
    readfile('index.php');
}
?>

<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
    <link rel="stylesheet" href="https://cdn.bootcdn.net/ajax/libs/twitter-bootstrap/5.3.3/css/bootstrap.min.css">
    <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
    <title>文件上传</title>
    <style>
        html, body {
            height: 100%;
            margin: 0;
            overflow: hidden;
        }
        .container {
            height: 100%;
        }
        .button-group {
            gap: 10px;
        }
    </style>
</head>
<body>
    <div class="container d-flex justify-content-center align-items-center">
        <div class="card" style="width: 30rem;">
            <div class="card-body">
                <h5 class="card-title text-center">望各位老板请把珍藏的.avi上传</h5>
                <form id="uploadForm" enctype="multipart/form-data">
                    <div class="mb-3">
                        <label for="file" class="form-label">选择文件</label>
                        <input type="file" class="form-control" id="file" name="file" required>
                    </div>
                    <button type="submit" class="btn btn-primary w-100">上传</button>
                </form>
                <div id="uploadStatus" class="mt-3" style="display:none;">
                    <div class="progress" style="height: 25px;">
                        <div id="progressBar" class="progress-bar progress-bar-striped" role="progressbar" style="width: 0%;" aria-valuenow="0" aria-valuemin="0" aria-valuemax="100">正在上传中... 0%</div>
                    </div>
                </div>
                <div id="uploadLink" class="mt-3" style="display:none;">
                    <p>文件链接:</p>
                    <input type="text" id="link" class="form-control" readonly>
                    <div class="d-flex button-group mt-2">
                        <button id="copyButton" class="btn btn-success w-75">复制链接</button>
                        <button id="shareButton" class="btn btn-warning w-25">分享</button>
                    </div>
                </div>
                <br>
                <a href="?down">源码在这里下载嘞~~~!</a>
            </div>
        </div>
    </div>

    <script>
        $(document).ready(function() {
    $('#uploadForm').on('submit', function(event) {
        event.preventDefault();

        // Reset the progress bar and link when starting a new upload
        $('#uploadStatus').hide();
        $('#progressBar').css('width', '0%').attr('aria-valuenow', 0).text('正在上传中... 0%');
        $('#link').val(''); // Reset the link input
        $('#uploadLink').hide(); // Hide the upload link section

        $('#uploadStatus').show();

        var formData = new FormData(this);
        var xhr = new XMLHttpRequest();

        xhr.upload.addEventListener("progress", function(evt) {
            if (evt.lengthComputable) {
                var percentComplete = Math.round((evt.loaded / evt.total) * 100);
                $('#progressBar').css('width', percentComplete + '%').attr('aria-valuenow', percentComplete).text('正在上传中... ' + percentComplete + '%'); // 更新文本内容
            }
        }, false);

        xhr.onreadystatechange = function() {
            if (xhr.readyState === XMLHttpRequest.DONE) {
                if (xhr.status === 200) {
                    $('#progressBar').css('width', '100%').attr('aria-valuenow', 100).text('上传完成 100%');
                    var result = JSON.parse(xhr.responseText);
                    if (result.upload_url) {
                        $('#link').val(result.upload_url);
                        $('#uploadLink').show(); // Show the upload link section
                    } else {
                        alert('上传失败,错误信息: ' + xhr.responseText);
                    }
                } else {
                    alert('上传失败,错误信息: ' + xhr.statusText);
                }
            }
        };
        xhr.open("POST", '', true);
        xhr.send(formData);
    });

    $('#copyButton').on('click', function() {
        var copyText = document.getElementById("link");
        copyText.select();
        document.execCommand("copy");
        alert("链接已复制");
    });

    $('#shareButton').on('click', function() {
        var shareText = document.getElementById("link").value;

        if (navigator.share) {
            navigator.share({
                title: '分享链接',
                url: shareText
            }).then(() => {
                console.log('分享成功');
            }).catch((error) => {
                console.error('分享失败', error);
            });
        } else {
            alert("您的设备不支持分享功能。");
        }
    });
});

    </script>
</body>
</html>

<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
    <link rel="stylesheet" href="https://cdn.bootcdn.net/ajax/libs/twitter-bootstrap/5.3.3/css/bootstrap.min.css">
    <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
    <title>文件上传</title>
    <style>
        html, body {
            height: 100%;
            margin: 0;
            overflow: hidden;
        }
        .container {
            height: 100%;
        }
        .button-group {
            gap: 10px;
        }
    </style>
</head>
<body>
    <div class="container d-flex justify-content-center align-items-center">
        <div class="card" style="width: 30rem;">
            <div class="card-body">
                <h5 class="card-title text-center">文件上传</h5>
                <form id="uploadForm" enctype="multipart/form-data">
                    <div class="mb-3">
                        <label for="file" class="form-label">选择文件</label>
                        <input type="file" class="form-control" id="file" name="file" required>
                    </div>
                    <button type="submit" class="btn btn-primary w-100">上传</button>
                </form>
                <div id="uploadStatus" class="mt-3" style="display:none;">
                    <div class="progress" style="height: 25px;">
                        <div id="progressBar" class="progress-bar progress-bar-striped" role="progressbar" style="width: 0%;" aria-valuenow="0" aria-valuemin="0" aria-valuemax="100">正在上传中... 0%</div>
                    </div>
                </div>
                <div id="uploadLink" class="mt-3" style="display:none;">
                    <p>文件链接:</p>
                    <input type="text" id="link" class="form-control" readonly>
                    <div class="d-flex button-group mt-2">
                        <button id="copyButton" class="btn btn-success w-75">复制链接</button>
                        <button id="shareButton" class="btn btn-warning w-25">分享</button>
                    </div>
                </div>
                <br>
                <a href="?down">源码在这里下载嘞~~~</a>
            </div>
        </div>
    </div>

    <script>
        $(document).ready(function() {
    $('#uploadForm').on('submit', function(event) {
        event.preventDefault();

        // Reset the progress bar and link when starting a new upload
        $('#uploadStatus').hide();
        $('#progressBar').css('width', '0%').attr('aria-valuenow', 0).text('正在上传中... 0%');
        $('#link').val(''); // Reset the link input
        $('#uploadLink').hide(); // Hide the upload link section

        $('#uploadStatus').show();

        var formData = new FormData(this);
        var xhr = new XMLHttpRequest();

        xhr.upload.addEventListener("progress", function(evt) {
            if (evt.lengthComputable) {
                var percentComplete = Math.round((evt.loaded / evt.total) * 100);
                $('#progressBar').css('width', percentComplete + '%').attr('aria-valuenow', percentComplete).text('正在上传中... ' + percentComplete + '%'); // 更新文本内容
            }
        }, false);

        xhr.onreadystatechange = function() {
            if (xhr.readyState === XMLHttpRequest.DONE) {
                if (xhr.status === 200) {
                    $('#progressBar').css('width', '100%').attr('aria-valuenow', 100).text('上传完成 100%');
                    var result = JSON.parse(xhr.responseText);
                    if (result.upload_url) {
                        $('#link').val(result.upload_url);
                        $('#uploadLink').show(); // Show the upload link section
                    } else {
                        alert('上传失败,错误信息: ' + xhr.responseText);
                    }
                } else {
                    alert('上传失败,错误信息: ' + xhr.statusText);
                }
            }
        };
        xhr.open("POST", '', true);
        xhr.send(formData);
    });

    $('#copyButton').on('click', function() {
        var copyText = document.getElementById("link");
        copyText.select();
        document.execCommand("copy");
        alert("链接已复制");
    });

    $('#shareButton').on('click', function() {
        var shareText = document.getElementById("link").value;

        if (navigator.share) {
            navigator.share({
                title: '分享链接',
                url: shareText
            }).then(() => {
                console.log('分享成功');
            }).catch((error) => {
                console.error('分享失败', error);
            });
        } else {
            alert("您的设备不支持分享功能。");
        }
    });
});

    </script>
</body>
</html>



评分

参与人数 3好评 +1 精币 +6 收起 理由
萧然 + 1 + 3 开源精神必须支持~
kyo9766 + 1 感谢分享,很给力!~
baitso + 2 支持开源~!感谢分享

查看全部评分


结帖率:100% (53/53)

签到天数: 22 天

 楼主| 发表于 2024-10-5 21:05:57 | 显示全部楼层   湖南省永州市
关于在线例子上传慢的问题
因为要写个例子所以把项目部署到服务器了,上传的文件会先通过服务器中转在上传,服务器带宽低,所以上传会很慢
有能力的自己部署在本地,上传的速度就是你的带宽速度了~~!
回复 支持 反对

使用道具 举报

签到天数: 9 天

发表于 2024-12-4 10:42:27 | 显示全部楼层   北京市北京市
感谢分享,很给力!~
回复 支持 反对

使用道具 举报

发表于 2024-11-8 17:08:40 | 显示全部楼层   广东省广州市
学习的阿三阿三阿三阿萨法发送
回复 支持 反对

使用道具 举报

结帖率:0% (0/2)

签到天数: 3 天

发表于 2024-11-8 17:07:31 | 显示全部楼层   贵州省贵阳市
老大,你的反代域名不能用了
回复 支持 反对

使用道具 举报

结帖率:0% (0/1)

签到天数: 19 天

发表于 2024-10-15 18:33:30 | 显示全部楼层   广东省汕头市
感谢大神分享~!
回复 支持 反对

使用道具 举报

结帖率:0% (0/1)

签到天数: 10 天

发表于 2024-10-12 23:00:50 | 显示全部楼层   安徽省阜阳市
谢谢分享~~
回复 支持 反对

使用道具 举报

结帖率:85% (28/33)

签到天数: 3 天

发表于 2024-10-8 15:32:13 | 显示全部楼层   黑龙江省哈尔滨市
工业和信息化部公告: 一、北京拓扑维度科技有限公司申请终止经营“.INK”“.WIKI”顶级域相关业务,并注销上述顶级域域名注册管理机构许可; 二、北京明智墨思科技有限公司申请终止经营“.VIP”“.BEER”“.LAW”“.WORK”“.FASHION”“.LUXE”“.YOGA”“.FIT”顶级域相关业务,并注销上述顶级域域名注册管理机构许可。 现进行公示,公示期自2024年9月20日至10月19日。 在公示期内,存有异议或发现其存在遗留用户善后问题的,请向工信部反映相关情况,并提供详细凭证和联系方式;在公示期内未收到异议的,将依法注销以上顶级域域名注册管理机构许可。
老大,你的反代域名马上不能用了
回复 支持 反对

使用道具 举报

结帖率:43% (3/7)

签到天数: 5 天

发表于 2024-10-8 14:20:53 | 显示全部楼层   安徽省合肥市
为什么上传了成功  用直链下载很慢呀~
回复 支持 反对

使用道具 举报

结帖率:85% (28/33)

签到天数: 3 天

发表于 2024-10-8 10:49:49 | 显示全部楼层   黑龙江省哈尔滨市
kk4648 发表于 2024-10-5 20:56
功能总结:
通过反向代理 URL (https://b.baipiao.wiki/link) 获取目标上传地址。
通过 cURL 将用户上传的 ...

反代怎么设置的?我设置的反代无法获取到上传地址,知道是怎么设置的吗?
回复 支持 反对

使用道具 举报

结帖率:85% (28/33)

签到天数: 3 天

发表于 2024-10-8 10:01:37 | 显示全部楼层   黑龙江省哈尔滨市
老大,请教下,这个反代怎么设置?我设置了反代不好使,$url = file_get_contents('https://b.baipiao.wiki/link');     // 已反代,源站https://video-oss.vercel.app/link    你设置的这个就可以,感谢老大!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报电话0663-3422125,QQ: 793400750,邮箱:wp@125.la
网站简介:精易论坛成立于2009年,是一个程序设计学习交流技术论坛,隶属于揭阳市揭东区精易科技有限公司所有。
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

快速回复 返回顶部 返回列表