php文件下载,_PHP教程

WBOY
Freigeben: 2016-07-13 09:46:03
Original
997 Leute haben es durchsucht

php文件下载,

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

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

<span><</span><span>a </span><span>href</span><span>='要下载的文件'</span><span>></span>点击下载<span></</span><span>a</span><span>><br /></span>
Nach dem Login kopieren

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

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

  第一种:

<em id="__mceDel"><span>$file_name='文件名'<span>;</span>
</span><span>header</span> ( 'Content-Disposition: attachment; filename=' . <span>basename</span> ( <span>$file_name</span><span> ));
</span><span>header</span> ( 'Content-Length: '.<span>filesize</span> ( <span>$file_name</span><span> ));
</span><span>readfile</span> ( <span>$file_name</span> );</em>
Nach dem Login kopieren

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

  第二种:

<span>$file_name</span>='要下载的文件名'<span>;


</span><span>$fp</span>=<span>fopen</span>(<span>$file_name</span>,"r+"<span>);
</span><span>$file_size</span>=<span>filesize</span>(<span>$file_name</span>);
<span>//header</span>("Content-type: application/octet-stream"<span>); //返回的文件类型
</span><span>//header</span>("Accept-Ranges: bytes"<span>);//按照字节格式返回</span>
<span>header</span>("Accept-Length: ".<span>$file_size</span><span>);
</span><span>header</span>("Content-Disposition: attachment; filename=".<span>$file_name</span><span>);</span>
<span>$buffer</span>=1024<span>;
</span><span>while</span>(!<span>feof</span>(<span>$fp</span><span>)){
    </span><span>$file_data</span>=<span>fread</span>(<span>$fp</span>,<span>$buffer</span><span>);
    </span><span>echo</span> <span>$file_data</span><span>;
}
</span><span>fclose</span>(<span>$fp</span>);
Nach dem Login kopieren

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

 

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/1036617.htmlTechArticlephp文件下载, 我们常常通过网页下载各种各样的文件,到底是怎样实现地呢?本文从php的角度,结合http相关内容对文件下载做出相关讨论...
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!