Php 用于下载和合并的脚本

Php 用于下载和合并的脚本,php,stream,Php,Stream,我想下载一个脚本文件。下面的例子效果很好 <?php if ( isset($_POST['downloadButton'] )) { $filename = ( isset($_POST["filename"]) ? $_POST["filename"] : null ); if ( file_exists( $filename )) { header("Content-Type: application/octet-stream");

我想下载一个脚本文件。下面的例子效果很好

<?php

if ( isset($_POST['downloadButton'] )) {

    $filename = ( isset($_POST["filename"]) ?
    $_POST["filename"] : null );


   if ( file_exists( $filename )) {

        header("Content-Type: application/octet-stream");
        header("Content-Disposition: attachment; filename=filename here");
        header("Content-Length: " . filesize( $filename) );
        header("Cache-Control: must-revalidate");
        readfile( $filename );
        exit;
     }
  }
?>

但我想下载文件块!例如,我下载文件并在第4个字节停止它,然后从第5个字节下载到最后,最后合并它。 我该怎么办


实际上,我的Q是如何从我想要的任何字节发送这个文件,例如5到end或3到10或

通过将文件读入变量,然后写入子字符串,可以下载文件块。因此,替换
readfile($filename)带有:

$contents = file_get_contents($filename);
echo substr($contents, $start, $length);
您还需要调整
内容长度:

header("Content-Length: " . min(filesize($filename)-$start, $length));

您无法自动合并它们。一次只能下载一个文件,用户在下载完所有文件后必须手动下载。

一次只能下载一个文件,无法自动合并。这将必须由用户完成。是的,我知道它和mt Q不是它。我的问题是如何从我想要的任何字节发送这个文件。例如:4到5或9到结束,但OP也希望以某种方式将其重新加上边框:|@AlonEitan正如我所评论的,没有办法从PHP或浏览器自动完成。我已经把它添加到了答案中。这对我来说已经足够好了,我希望OP能自己完成合并部分。他编辑了这个问题,说他主要是问如何进行部分下载。哦,现在这就是问题的确切答案:)撤回了我的简历,所以它可能不会关闭