我在服务器上有一个PHP脚本将文件发送给配方:它们获得一个唯一的链接,然后他们可以下载大文件.有时传输出现问题,文件已损坏或永不完成.我想知道是否有更好的方法来发送大文件
码:
$f = fopen(DOWNLOAD_DIR.$database[$_REQUEST['fid']]['filePath'], 'r');
while(!feof($f)){
print fgets($f, 1024);
}
fclose($f);
Run Code Online (Sandbox Code Playgroud)
我见过的功能如
http_send_file
http_send_data
Run Code Online (Sandbox Code Playgroud)
但我不确定他们是否会奏效.
解决这个问题的最佳方法是什么?
问候
erwing
我想用PHP脚本处理大文件(1-2Gb)下载,并找到两种方法:
并使用此实现:
header('Content-type: ' . $string);
header('Content-disposition: attachment; filename=' . $info['filename']);
$file = file_get_contents($filename);
echo $file;
or
readfile($filename);
Run Code Online (Sandbox Code Playgroud)
但输出文件需要很长时间.我想在输出开始之前必须重写整个文件.指向文件的确切位置时会更快.然后几乎立即开始输出.
我正在寻找流式传输文件或其他东西的解决方案.有任何想法吗?