比较来自世界各地的卖家的域名和 IT 服务价格

指定所需的文件大小 HTTP URL

我想拥有一个Web服务器,我可以在其中上传大小由文件名确定的文件。 就像是:

Browse to [url=http://mydomain.com/100MB]http://mydomain.com/100MB[/url] -> receive any 100MB file
Browse to [url=http://mydomain.com/200MB]http://mydomain.com/200MB[/url] -> receive any 200MB file
Browse to [url=http://mydomain.com/254MB]http://mydomain.com/254MB[/url] -> receive any 254MB file
Browse to [url=http://mydomain.com/10kb]http://mydomain.com/10kb[/url] -> receive any 10kb file
Browse to [url=http://mydomain.com/1GB]http://mydomain.com/1GB[/url] -> receive any 1GB file
Browse to [url=http://mydomain.com/3GB]http://mydomain.com/3GB[/url] -> receive any 3GB file

在URL中指定文件大小的确切方式并不重要,因为收到的文件的内容并不重要 (随机数据,所有零,无关紧要), 如果它具有正确的尺寸。

我安装了一个服务器 apache, 但显然,每个文件的创建是不可能的 (我很快就结束了磁盘上的地方).

有没有办法实现这种行为? 使用模块 apache 也许 PHP, 还是另一种方式?
已邀请:

董宝中

赞同来自:

采用 mod_rewrite 要捕获参数:

RewriteEngine on
RewriteRule ^/?(.*)$ generate.php?size=$1 [L]

然后只有

generate.php

拆卸

$_GET['size']

并返回相应的字节数。

江南孤鹜

赞同来自:

这就是我所想要的方式。

好像是 PHP 这很简单。 考察后 PHP 我创造了这个脚本 generate.php:

php

$size = $_GET['size'];
$partsize = 1024 * 16;
$part = str_repeat(' ',$partsize);
$partcount = intval(floor($size / $partsize));
$leftover = $size - ($partcount * $partsize);

for ($i = 0; $i < $partcount; $i++) {
echo($part);
flush();
}

if ($leftover 0) {
echo(str_repeat(' ',$leftover));
}

?>

坐B.
http://mydomain.com/generate.php?size=1000
然后返回文件大小 1000 字节仅包含空格。

接受的答案让我站在路上 PHP, 它建议使用覆盖规则,但我不需要它来弄错。

要回复问题请先登录注册