我想有一个networking服务器,我可以下载文件,其大小由文件名决定。 就像是:
Browse to http://mydomain.com/100MB -> receive any 100MB file Browse to http://mydomain.com/200MB -> receive any 200MB file Browse to http://mydomain.com/254MB -> receive any 254MB file Browse to http://mydomain.com/10kb -> receive any 10kb file Browse to http://mydomain.com/1GB -> receive any 1GB file Browse to http://mydomain.com/3GB -> receive any 3GB file
在URL中指定文件大小的确切方法并不重要,只要它具有合适的大小,接收文件的数据内容(随机数据,全零,无关紧要)也不重要。
我已经安装了apache服务器,但显然生成每个文件是不可能的(我快用完磁盘空间)。
有没有办法实现这种行为? 使用一个Apache模块或PHP或其他方式?
使用mod_rewrite来捕获参数:
RewriteEngine on RewriteRule ^/?(.*)$ generate.php?size=$1 [L]
然后只需要generate.phpparsing$_GET['size']并返回适当的字节数。
这就是我如何结束了自己想做的事情。
看来这在PHP中非常简单。 学习PHP之后,这是我创build的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)); } ?>
浏览到http://mydomain.com/generate.php?size=1000,然后返回一个只包含空格的1000字节的文件。
接受的答案,使我在PHP的轨道上,build议使用重写规则,但我不需要它为我在做什么。