php文件下载

WBOY
Lepaskan: 2016-06-23 13:30:25
asal
887 orang telah melayarinya

  我们常常通过网页下载各种各样的文件,到底是怎样实现地呢?本文从php的角度,结合http相关内容对文件下载做出相关讨论。

  一般来说,通过超链接的方式可以直接下载文件。

<a href='要下载的文件'>点击下载</a>
Salin selepas log masuk

  这一招可以应对很多格式的文件如.exe,.rar等格式,但是应对图片格式,html,txt等类型的文件,点击链接只会直接显示在浏览器上。那么如何应对这种情况呢?这时候就需要php出场了。

  在我有限的php编程经历中,遇到过两种php下载文件的形式。整体上都是利用通过设置响应的header 来实现文件下载。原理上没有本质的不同。

  第一种:

$file_name='文件名'; header ( 'Content-Disposition: attachment; filename=' . basename ( $file_name )); header ( 'Content-Length: '.filesize ( $file_name )); readfile ( $file_name );
Salin selepas log masuk

  其中$filename设置的是下载文件的名称。 通过readfile()读入一个文件并且写入到输出缓存。

  第二种:

$file_name='要下载的文件名';$fp=fopen($file_name,"r+");$file_size=filesize($file_name);//header("Content-type: application/octet-stream"); //返回的文件类型//header("Accept-Ranges: bytes");//按照字节格式返回header("Accept-Length: ".$file_size);header("Content-Disposition: attachment; filename=".$file_name);$buffer=1024;while(!feof($fp)){    $file_data=fread($fp,$buffer);    echo $file_data;}fclose($fp);
Salin selepas log masuk

  这种方式更加详细描述了下载文件的过程。

  1. 打开文件,写入内存。
  2. 计算文件大小
  3. 设置头信息
  4. 输出数据到缓存
  5. 关闭文件

 

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan