PHP生成一个指定大小文件下载
主要用于测试服务器下载带宽,请勿用于非法用途!
刚刚自己随便用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)。";
}本作品采用 知识共享署名-相同方式共享 4.0 国际许可协议 进行许可。
小菜鸡
评论已关闭