主要用于测试服务器下载带宽,请勿用于非法用途!

刚刚自己随便用AI搓的代码,发在这里记录下

PHP脚本内部写死大小版

<?php
// 文件大小(以字节为单位)
$fileSize = 1000000000; // 1000 MB

// 文件名
$fileName = 'example_file.bin';

// 设置下载响应头
header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename="' . $fileName . '"');
header('Content-Length: ' . $fileSize);

// 生成并输出示例文件内容
$chunkSize = 1024;
$remainingBytes = $fileSize;
while ($remainingBytes > 0) {
    $bytesToRead = min($chunkSize, $remainingBytes);
    echo random_bytes($bytesToRead);
    $remainingBytes -= $bytesToRead;
}

使用URL参数指定版

使用方法:访问 文件名.php?size=指定大小(例如1000000)

<?php
// 检查是否传递了size参数
if (isset($_GET['size']) && is_numeric($_GET['size'])) {
    // 获取传递的文件大小参数(以字节为单位)
    $fileSize = (int)$_GET['size'];

    // 文件名
    $fileName = 'custom_size_file.bin';

    // 设置下载响应头
    header('Content-Description: File Transfer');
    header('Content-Type: application/octet-stream');
    header('Content-Disposition: attachment; filename="' . $fileName . '"');
    header('Content-Length: ' . $fileSize);

    // 生成并输出文件内容
    $chunkSize = 1024;
    $remainingBytes = $fileSize;
    while ($remainingBytes > 0) {
        $bytesToRead = min($chunkSize, $remainingBytes);
        echo random_bytes($bytesToRead);
        $remainingBytes -= $bytesToRead;
    }
} else {
    // 如果未传递有效的size参数,返回错误信息
    http_response_code(400);
    echo "错误:请通过URL参数提供有效的文件大小,例如:file.php?size=1000000 (表示1MB)。";
}