我正在用PHP编写一个脚本,它执行从磁盘读取二进制文件并将其作为文件下载输出到浏览器的常见任务。
header('Content-Length: '.$file['fileSize']);
header('Content-type: '.$file['mimeType']);
header('Content-Disposition: attachment; filename='.$file['title']);
set_time_limit(0);
$chunksize = 1 * (1024 * 1024);
$handle = fopen($file['path'], 'r');
$buffer = '';
while (!feof($handle)) {
$buffer = fread($handle, $chunksize);
echo $buffer;
ob_flush();
flush();
}
fclose($handle);
这有效 - 没问题。但我的问题......
我已经在各个地方读过,在某些情况下,你需要在通过网络发送二进制数据之前对Base64进行编码,因为二进制数据可能包含无法在默认字符集中表示的字符。 / p>
我能够非常理解的是 - 为什么我不能在我的情况下这样做?
感谢您的任何见解!