在PHP中从服务器发送文件块

时间:2014-10-30 15:30:13

标签: php download

我正在开发一种嵌入式设备,它具有一个内存有限的简单miro-controller。此设备将通过向服务器发送HTTP(或HTTPS)GET方法请求来从服务器请求文件。将有一个PHP脚本在服务器负责发送文件。现在PHP脚本只会将文件连续发送到嵌入式设备。但是,由于嵌入式设备速度不够快,并且在处理之前没有足够的内存来存储整个文件。我希望PHP脚本只在每个HTTP GET请求中发送一大块文件。我认为块的大小由GET请求中的变量决定是好的。在每个块中,它将添加一个标题,描述该块的大小,序列号和CRC校验。

我是PHP脚本的新手。你可以帮我帮我编写PHP脚本吗?一个例子将非常感激。

非常感谢。

1 个答案:

答案 0 :(得分:1)

我认为您的脚本PHP可以读取文件并获取您想要的块:

$filename = "YOURFILE.txt";
$chunk_length = 1024;  // 1024 chars will be sent
$sequence_number = $_GET['sequence'];
if ($sequence_number>0){
    $position = $sequence_number * $chunk_length;
}
else {
    $position = 0;
}
$content = file_get_contents($filename);
$data = substr($content, $position, $chunk_length);
header('size:'.strlen($data));
header('sequence_number:'.sequence_number);
header('CRC:'.crc32($data));
echo $data;