php下载文件与服务器有关吗,php 下载文件功能中下载后文件大小与服务器源文件大小不一致...
1.根據(jù)網(wǎng)上下載文件的函數(shù)
public function putFile($file_dir, $file_name){
$file_dir = chop($file_dir);//去掉路徑中多余的空格
//得出要下載的文件的路徑
if($file_dir != '')
{
$file_path = $file_dir;
if(substr($file_dir,strlen($file_dir)-1,strlen($file_dir)) != '/')
$file_path .= '/';
$file_path .= $file_name;
}
else
$file_path = $file_name;
//判斷要下載的文件是否存在
if(!file_exists($file_path))
{
// alert('對不起,你要下載的文件不存在');
return false;
}
$file_size = filesize($file_path);
header("Content-type: application/octet-stream;charset=gbk");
header("Accept-Ranges: bytes");
header("Accept-Length: $file_size");
header("Content-Disposition: attachment; filename=".$file_name);
$fp = fopen($file_path,"r");
$buffer_size = 1024;
$cur_pos = 0;
while(!feof($fp)&&$file_size-$cur_pos>$buffer_size)
{
$buffer = fread($fp,$buffer_size);
echo $buffer;
$cur_pos += $buffer_size;
}
$buffer = fread($fp,$file_size-$cur_pos);
echo $buffer;
fclose($fp);
return true;
}
確定是同一個文件但是出現(xiàn)下載后的文件 比源文件小這是為什么
回復(fù)內(nèi)容:
1.根據(jù)網(wǎng)上下載文件的函數(shù)
public function putFile($file_dir, $file_name){
$file_dir = chop($file_dir);//去掉路徑中多余的空格
//得出要下載的文件的路徑
if($file_dir != '')
{
$file_path = $file_dir;
if(substr($file_dir,strlen($file_dir)-1,strlen($file_dir)) != '/')
$file_path .= '/';
$file_path .= $file_name;
}
else
$file_path = $file_name;
//判斷要下載的文件是否存在
if(!file_exists($file_path))
{
// alert('對不起,你要下載的文件不存在');
return false;
}
$file_size = filesize($file_path);
header("Content-type: application/octet-stream;charset=gbk");
header("Accept-Ranges: bytes");
header("Accept-Length: $file_size");
header("Content-Disposition: attachment; filename=".$file_name);
$fp = fopen($file_path,"r");
$buffer_size = 1024;
$cur_pos = 0;
while(!feof($fp)&&$file_size-$cur_pos>$buffer_size)
{
$buffer = fread($fp,$buffer_size);
echo $buffer;
$cur_pos += $buffer_size;
}
$buffer = fread($fp,$file_size-$cur_pos);
echo $buffer;
fclose($fp);
return true;
}
確定是同一個文件但是出現(xiàn)下載后的文件 比源文件小這是為什么
不同系統(tǒng)有差別是很正常的
寫的太復(fù)雜了,越復(fù)雜越容易錯,不確定是不是你那個長度管理有問題,以下代碼就足夠了。
$fp = fopen($file_path,"r");
$content = '';
while($_content = fread($fp, 1024)) $content.= $_content;
fclose($fp);
如果文件只有100字節(jié),fread($fp, 1024)不會得到1024個字節(jié)的。
另外...我覺得,charset=gbk應(yīng)該去掉,不需要指定編碼。
相關(guān)標(biāo)簽:php
本文原創(chuàng)發(fā)布php中文網(wǎng),轉(zhuǎn)載請注明出處,感謝您的尊重!
總結(jié)
以上是生活随笔為你收集整理的php下载文件与服务器有关吗,php 下载文件功能中下载后文件大小与服务器源文件大小不一致...的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: 64测试cpu稳定性_SuperPI-圆
- 下一篇: java造型_java造型_java向上
