热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

php文件下载方法

文章也很简单我们只要用利用head发送头部信息就能实现把文件下载到本地了,有直接发送header信息也有把文件保存在服务器上再用header来发送哦,有需要的朋友参考下。用的是表头方式下载,代码...
文章也很简单我们只要用利用head发送头部信息就能实现把文件下载到本地了,有直接发送header信息也有把文件保存在服务器上再用header来发送哦,有需要的朋友参考下。

用的是表头方式下载,代码如下:

Header( "Content-type:application/octet-stream ");  
Header( "Accept-Ranges:bytes ");  
Header( "Accept-Length:".filesize($file_dir.$file_name));  
Header( "Content-Disposition:attachment;filename= ".$file_name);

判断文件存在再下载代码如下:

pdf文件下载,代码如下:

下面讲讲header中的Content-type,不同的下载文件,对应不同的content-type,下面是大全:

{ 
	'ez' => 'application/andrew-inset', 
	'hqx' => 'application/mac-binhex40', 
	'cpt' => 'application/mac-compactpro', 
	'doc' => 'application/msword', 
	'bin' => 'application/octet-stream', 
	'dms' => 'application/octet-stream', 
	'lha' => 'application/octet-stream',  
	'lzh' => 'application/octet-stream', 
	'exe' => 'application/octet-stream', 
	'class' => 'application/octet-stream', 
	'so' => 'application/octet-stream', 
	'dll' => 'application/octet-stream', 
	'oda' => 'application/oda', 
	'pdf' => 'application/pdf', 
	'ai' => 'application/postscript', 
	'eps' => 'application/postscript', 
	'ps' => 'application/postscript', 
	'smi' => 'application/smil', 
	'smil' => 'application/smil', 
	'mif' => 'application/vnd.mif', 
	'xls' => 'application/vnd.ms-excel', 
	'ppt' => 'application/vnd.ms-powerpoint', 
	'wbxml' => 'application/vnd.wap.wbxml', 
	'wmlc' => 'application/vnd.wap.wmlc', 
	'wmlsc' => 'application/vnd.wap.wmlscriptc', 
	'bcpio' => 'application/x-bcpio', 
	'vcd' => 'application/x-cdlink', 
	'pgn' => 'application/x-chess-pgn', 
	'cpio' => 'application/x-cpio', 
	'csh' => 'application/x-csh',  
	'dcr' => 'application/x-director', 
	'dir' => 'application/x-director', 
	'dxr' => 'application/x-director', 
	'dvi' => 'application/x-dvi', 
	'spl' => 'application/x-futuresplash', 
	'gtar' => 'application/x-gtar', 
	'hdf' => 'application/x-hdf', 
	'js' => 'application/x-Javascript', 
	'skp' => 'application/x-koan', 
	'skd' => 'application/x-koan', 
	'skt' => 'application/x-koan', 
	'skm' => 'application/x-koan', 
	'latex' => 'application/x-latex', 
	'nc' => 'application/x-netcdf', 
	'cdf' => 'application/x-netcdf', 
	'sh' => 'application/x-sh', 
	'shar' => 'application/x-shar', 
	'swf' => 'application/x-shockwave-flash', 
	'sit' => 'application/x-stuffit', 
	'sv4cpio' => 'application/x-sv4cpio', 
	'sv4crc' => 'application/x-sv4crc', 
	'tar' => 'application/x-tar', 
	'tcl' => 'application/x-tcl', 
	'tex' => 'application/x-tex',  
	'texinfo' => 'application/x-texinfo', 
	'texi' => 'application/x-texinfo', 
	't' => 'application/x-troff', 
	'tr' => 'application/x-troff', 
	'roff' => 'application/x-troff', 
	'man' => 'application/x-troff-man', 
	'me' => 'application/x-troff-me', 
	'ms' => 'application/x-troff-ms', 
	'ustar' => 'application/x-ustar', 
	'src' => 'application/x-wais-source', 
	'xhtml' => 'application/xhtml+xml', 
	'xht' => 'application/xhtml+xml',  
	'zip' => 'application/zip', 
	'au' => 'audio/basic', 
	'snd' => 'audio/basic', 
	'mid' => 'audio/midi', 
	'midi' => 'audio/midi', 
	'kar' => 'audio/midi', 
	'mpga' => 'audio/mpeg', 
	'mp2' => 'audio/mpeg', 
	'mp3' => 'audio/mpeg', 
	'aif' => 'audio/x-aiff', 
	'aiff' => 'audio/x-aiff', 
	'aifc' => 'audio/x-aiff', 
	'm3u' => 'audio/x-mpegurl', 
	'ram' => 'audio/x-pn-realaudio', 
	'rm' => 'audio/x-pn-realaudio', 
	'rpm' => 'audio/x-pn-realaudio-plugin', 
	'ra' => 'audio/x-realaudio', 
	'wav' => 'audio/x-wav', 
	'pdb' => 'chemical/x-pdb', 
	'xyz' => 'chemical/x-xyz', 
	'bmp' => 'image/bmp', 
	'gif' => 'image/gif', 
	'ief' => 'image/ief', 
	'jpeg' => 'image/jpeg', 
	'jpg' => 'image/jpeg', 
	'jpe' => 'image/jpeg',  
	'png' => 'image/png', 
	'tiff' => 'image/tiff', 
	'tif' => 'image/tiff', 
	'djvu' => 'image/vnd.djvu', 
	'djv' => 'image/vnd.djvu', 
	'wbmp' => 'image/vnd.wap.wbmp', 
	'ras' => 'image/x-cmu-raster', 
	'pnm' => 'image/x-portable-anymap', 
	'pbm' => 'image/x-portable-bitmap', 
	'pgm' => 'image/x-portable-graymap', 
	'ppm' => 'image/x-portable-pixmap', 
	'rgb' => 'image/x-rgb',  
	'xbm' => 'image/x-xbitmap', 
	'xpm' => 'image/x-xpixmap', 
	'xwd' => 'image/x-xwindowdump', 
	'igs' => 'model/iges', 
	'iges' => 'model/iges', 
	'msh' => 'model/mesh', 
	'mesh' => 'model/mesh', 
	'silo' => 'model/mesh', 
	'wrl' => 'model/vrml', 
	'vrml' => 'model/vrml', 
	'css' => 'text/css', 
	'html' => 'text/html', 
	'htm' => 'text/html',  
	'asc' => 'text/plain', 
	'txt' => 'text/plain', 
	'rtx' => 'text/richtext', 
	'rtf' => 'text/rtf', 
	'sgml' => 'text/sgml', 
	'sgm' => 'text/sgml', 
	'tsv' => 'text/tab-separated-values', 
	'wml' => 'text/vnd.wap.wml', 
	'wmls' => 'text/vnd.wap.wmlscript', 
	'etx' => 'text/x-setext', 
	'xsl' => 'text/xml', 
	'xml' => 'text/xml', 
	'mpeg' => 'video/mpeg', 
	'mpg' => 'video/mpeg', 
	'mpe' => 'video/mpeg', 
	'qt' => 'video/quicktime', 
	'mov' => 'video/quicktime', 
	'mxu' => 'video/vnd.mpegurl', 
	'avi' => 'video/x-msvideo', 
	'movie' => 'video/x-sgi-movie', 
	'ice' => 'x-conference/x-cooltalk', 
	}


本文地址:

转载随意,但请附上文章地址:-)

推荐阅读
  • 本文讨论了Alink回归预测的不完善问题,指出目前主要针对Python做案例,对其他语言支持不足。同时介绍了pom.xml文件的基本结构和使用方法,以及Maven的相关知识。最后,对Alink回归预测的未来发展提出了期待。 ... [详细]
  • 在说Hibernate映射前,我们先来了解下对象关系映射ORM。ORM的实现思想就是将关系数据库中表的数据映射成对象,以对象的形式展现。这样开发人员就可以把对数据库的操作转化为对 ... [详细]
  • 本文介绍了在SpringBoot中集成thymeleaf前端模版的配置步骤,包括在application.properties配置文件中添加thymeleaf的配置信息,引入thymeleaf的jar包,以及创建PageController并添加index方法。 ... [详细]
  • 本文介绍了通过ABAP开发往外网发邮件的需求,并提供了配置和代码整理的资料。其中包括了配置SAP邮件服务器的步骤和ABAP写发送邮件代码的过程。通过RZ10配置参数和icm/server_port_1的设定,可以实现向Sap User和外部邮件发送邮件的功能。希望对需要的开发人员有帮助。摘要长度:184字。 ... [详细]
  • Java验证码——kaptcha的使用配置及样式
    本文介绍了如何使用kaptcha库来实现Java验证码的配置和样式设置,包括pom.xml的依赖配置和web.xml中servlet的配置。 ... [详细]
  • 本文介绍了使用cacti监控mssql 2005运行资源情况的操作步骤,包括安装必要的工具和驱动,测试mssql的连接,配置监控脚本等。通过php连接mssql来获取SQL 2005性能计算器的值,实现对mssql的监控。详细的操作步骤和代码请参考附件。 ... [详细]
  • 前言对于从事技术的人员来说ajax是这好东西,都会使用,而且乐于使用。但对于新手,开发一个ajax实例,还有是难度的,必竟对于他们这是新东西。leo开发一个简单的ajax实例,用的是 ... [详细]
  • 表单提交前的最后验证:通常在表单提交前,我们必须确认用户是否都把必须填选的做了,如果没有,就不能被提交到服务器,这里我们用到表单的formname.submit()看演示,其实这个对于我们修炼道 ... [详细]
  • 本文内容为asp.net微信公众平台开发的目录汇总,包括数据库设计、多层架构框架搭建和入口实现、微信消息封装及反射赋值、关注事件、用户记录、回复文本消息、图文消息、服务搭建(接入)、自定义菜单等。同时提供了示例代码和相关的后台管理功能。内容涵盖了多个方面,适合综合运用。 ... [详细]
  • 如何实现织梦DedeCms全站伪静态
    本文介绍了如何通过修改织梦DedeCms源代码来实现全站伪静态,以提高管理和SEO效果。全站伪静态可以避免重复URL的问题,同时通过使用mod_rewrite伪静态模块和.htaccess正则表达式,可以更好地适应搜索引擎的需求。文章还提到了一些相关的技术和工具,如Ubuntu、qt编程、tomcat端口、爬虫、php request根目录等。 ... [详细]
  • 基于layUI的图片上传前预览功能的2种实现方式
    本文介绍了基于layUI的图片上传前预览功能的两种实现方式:一种是使用blob+FileReader,另一种是使用layUI自带的参数。通过选择文件后点击文件名,在页面中间弹窗内预览图片。其中,layUI自带的参数实现了图片预览功能。该功能依赖于layUI的上传模块,并使用了blob和FileReader来读取本地文件并获取图像的base64编码。点击文件名时会执行See()函数。摘要长度为169字。 ... [详细]
  • 本文介绍了使用Java实现大数乘法的分治算法,包括输入数据的处理、普通大数乘法的结果和Karatsuba大数乘法的结果。通过改变long类型可以适应不同范围的大数乘法计算。 ... [详细]
  • HDU 2372 El Dorado(DP)的最长上升子序列长度求解方法
    本文介绍了解决HDU 2372 El Dorado问题的一种动态规划方法,通过循环k的方式求解最长上升子序列的长度。具体实现过程包括初始化dp数组、读取数列、计算最长上升子序列长度等步骤。 ... [详细]
  • 本文讨论了如何优化解决hdu 1003 java题目的动态规划方法,通过分析加法规则和最大和的性质,提出了一种优化的思路。具体方法是,当从1加到n为负时,即sum(1,n)sum(n,s),可以继续加法计算。同时,还考虑了两种特殊情况:都是负数的情况和有0的情况。最后,通过使用Scanner类来获取输入数据。 ... [详细]
  • 动态规划算法的基本步骤及最长递增子序列问题详解
    本文详细介绍了动态规划算法的基本步骤,包括划分阶段、选择状态、决策和状态转移方程,并以最长递增子序列问题为例进行了详细解析。动态规划算法的有效性依赖于问题本身所具有的最优子结构性质和子问题重叠性质。通过将子问题的解保存在一个表中,在以后尽可能多地利用这些子问题的解,从而提高算法的效率。 ... [详细]
author-avatar
jiushi45678
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有