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能自己完成合并部分。他编辑了这个问题,说他主要是问如何进行部分下载。哦,现在这就是问题的确切答案:)撤回了我的简历,所以它可能不会关闭