日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > php >内容正文

php

php下载文件与服务器有关吗,php 下载文件功能中下载后文件大小与服务器源文件大小不一致...

發布時間:2024/7/23 php 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 php下载文件与服务器有关吗,php 下载文件功能中下载后文件大小与服务器源文件大小不一致... 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1.根據網上下載文件的函數

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;

}

確定是同一個文件但是出現下載后的文件 比源文件小這是為什么

回復內容:

1.根據網上下載文件的函數

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;

}

確定是同一個文件但是出現下載后的文件 比源文件小這是為什么

不同系統有差別是很正常的

寫的太復雜了,越復雜越容易錯,不確定是不是你那個長度管理有問題,以下代碼就足夠了。

$fp = fopen($file_path,"r");

$content = '';

while($_content = fread($fp, 1024)) $content.= $_content;

fclose($fp);

如果文件只有100字節,fread($fp, 1024)不會得到1024個字節的。

另外...我覺得,charset=gbk應該去掉,不需要指定編碼。

相關標簽:php

本文原創發布php中文網,轉載請注明出處,感謝您的尊重!

總結

以上是生活随笔為你收集整理的php下载文件与服务器有关吗,php 下载文件功能中下载后文件大小与服务器源文件大小不一致...的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。