PHP下载功能函式

下载

分两种情况,一是文件单独下载:  
  <?  
  $file_name   =   "abc.exe";  
  $file_dir   =   "/xxx/";  
  if   (!file_exists($file_dir   .   $file_name))   {   //检查文件是否存在  
  echo   "文件找不到";  
  exit;  
  }   else   {  
  $file   =   fopen($file_dir   .   $file_name,"r");   //   打开文件  
  //   输入文件标签  
  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);  
  //   输出文件内容  
  echo   fread($file,filesize($file_dir   .   $file_name));  
  fclose($file);  
  exit;}  
  ?>  
   
  另外一种情况是文件路径包含“http”或者“ftp”网址:  
  <?  
  $file_name   =   "abc.exe";  
  $file_dir   =   "http://www.xrss.cn/";  
  $file   =   @   fopen($file_dir   .   $file_name,"r");  
  if   (!$file)   {  
  echo   "文件找不到";  
  }   else   {  
  Header("Content-type:   application/octet-stream");  
  Header("Content-Disposition:   attachment;   filename="   .   $file_name);  
  while   (!feof   ($file))   {  
  echo   fread($file,50000);  
  }  
  fclose   ($file);  
  }  
  ?> 

时间: 2024-10-30 10:05:37

PHP下载功能函式的相关文章

967 个函式_php基础

967 个函式 Abs: 取得绝对值. Acos: 取得反余弦值. ada_afetch: 取得资料库的传回列. ada_autocommit: 开关自动更动功能. ada_close: 关闭 Adabas D 连结. ada_commit: 更动 Adabas D 资料库. ada_connect: 连结至 Adabas D 资料库. ada_exec: 执行 SQL 指令. ada_fetchrow: 取得传回一列. ada_fieldname: 取得栏位名称. ada_fieldtype:

ODBC 资料库连结函式库

本函式库共有 25 个函式 开放资料连结 (Open Database Connectivity, ODBC) 是连结资料库的共通介面.ODBC 是由微软主导的资料库连结标准,实作环境也以微软的系统最成熟. 在 UNIX 系统中,通常要使用其它厂商所提供的 ODBC 介面,有些 UNIX 厂商会自己提供 ODBC 介面 (如 SUN 有为 Solaris 提供 ODBC). ODBC 和资料库的查询采用 SQL 语言,这和大部份的资料库查询方式一样,这使得系统可以很容易和各种资料库沟通.当然,透

C++ 檔案、資料夾、路徑處理函式庫:boost::filesystem

原帖:https://tokyo.zxproxy.com/browse.php?u=uG7kXsFlW1ZmaxKEvCzu8HrCJ0bXIAddA1s5dtIUZ%2FYzM1u9JI7jjKLTXvXJlIqeavUo1Ak%3D&b=6   如果要在 C++ 裡對特定的檔案做存取,其實透過 STL 的 fstream(參考)來做,一般是不會有什麼問題的:相對的,問題比較大的部分,可能會是在於對於資料夾(folder.directory)的處理,以及對於路徑的操作上.像是以路徑來說,Win

[jQuery筆記] 好用的日期函式 datepicker

最近在学习 javascript,当然首推的就是 jQuery 了,之前因為懒得做日期表单,因為日期表单需要三种栏位,一个是年,一个是月,一个是日,相当麻烦,一直在那边 for 迴圈也不是办法,虽然那是个解决方法,然后我之前用了xt:Commerce 这套 opensource的程式码,把日期函式取出来:[Html] javascript 好用的时间日历表,不过我认為这方法也太麻烦,因為 jQuery 一行就可以解决的事情,干麼还要用那个方法呢? 再来呢介绍一下怎麼使用日期函式 步骤一:加上 j

手机社交应用的图片上传下载功能分别使用ftp和http的优缺点是什么?

问题描述 手机社交应用的图片上传下载功能分别使用ftp和http的优缺点是什么? 手机上流行的社交应用,可以查看好友的拍照相册,也可以自己拍照上传和好友分享等,分别使用ftp和http技术实现上传下载的优缺点是什么?

CentOS 6.3安装Nginx开启目录浏览、下载功能

本次实验实现目的: 安装Nginx,Nginx开启目录浏览.下载功能,开机默认启动:咐件自带开机启动脚本.重启脚本: 1.关闭SELINUX 查看获取SELinux的状态: [root@localhost ~]# getenforce [root@localhost ~]# vim /etc/selinux/config SELINUX=disabled    #默认为:enforcing 2.添加开放nginx端口号 查看获取iptables的状态: [root@localhost ~]# s

ASP.NET实现下载功能的中文文件名乱码处理

早几天在系统中添加文件管理的下载功能, 要求在ASPX文件中实现, 以进行权限的控件, 于是添加下列代码: ... Response.ContentType = mime; //相应的MIME TYPE Response.AppendHeader("Content-Disposition", "attachment; filename=\"" +fileName + "\""); Response.BinaryWrite(by

C++继承後的建构函式与解构函式

若您继承了某个类别之后,当您在生成衍生类别的物件时若不指定参数,无参数的预设建构子会被执行,而基础类别的无参数预设建构子也会被执行,所以基于这种特性,通常预设建构子中会撰写一些通用的成员状态初始,例如设定一些预设值. 如果继承之后,您要使用衍生类别生成物件,在生成物件时指定参数,并同时执行基底类别中的某个参数建构子,您可以使用 : 运算子 例如: // Point2D类别 class Point2D { public: Point2D() { _x = 0; _y = 0; } Point2D(

让迅雷7支持批量离线下载功能

    迅雷离线下载为我们提供了高速和稳定的下载体验,属于迅雷会员的"杀手级应用".不过每次去迅雷中单击"离线下载"按钮实在是太麻烦,只要稍作变通,就可以在迅雷7中享受到批量离线下载功能.     一.复制下载地址     首先从it下载网上下载并安装最新版本的迅雷7,然后单击左侧的"正在下载"按钮,在右侧窗格中配合Ctrl或Shift键选中多个资源,右击,选择"复制网址到剪切板"命令将这些资源的下载地址复制到剪贴板中(如图1