php 代码下载_PHP实现下载功能的代码
wzskynet#163.com
·php escapeshellcmd多字节编码漏洞
·详细讲解PHP中缓存技术的应用
·利用PHP V5开发多任务应用程序
·详细解析 PHP 向 MySQL 发送数据过程
·PHP实现静态发布的方法浅谈
你一定会笑我“下载文件”如此简单都值得说?当然并不是想你想象的那么简单。例如你希望客户要填完一份表格,才可以下载某一文件,你第一个想法一定是用 “Redirect”的方法,先检查表格是否已经填写完毕和完整,然后就将网址指到该文件,这样客户才能下载,例如笔者编写的以下代码:
// 检查 FORM 是否全部填写完毕...
if ($form_completed) {
Header("Location: https://www.jb51.net/download/info_check.exe");
exit;
}
?>
或者是以下的情况:
开始下载文件
这里利用了ID方式接收要下载文件的编号,然后用“Redirect”的方式连接到实际的网址。
如果你想做一个关于“网上购物”的电子商务网站,考虑安全问题,你不想用户直接复制网址下载该文件,笔者建议你使用PHP直接读取该实际文件然后下载的方法去做。程序如下:
$file_name = "info_check.exe";
$file_dir = "/public/www/download/";
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 = "info_check.exe";
$file_dir = "https://www.jb51.net/";
$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);
}
?>
这样就可以用PHP直接输出文件了。
实现php文件安全下载!
public function downloads($name){
$name_tmp = explode("_",$name);
$type = $name_tmp[0];
$file_time = explode(".",$name_tmp[3]);
$file_time = $file_time[0];
$file_date = date("Y/md",$file_time);
$file_dir = SITE_PATH."/data/uploads/$type/$file_date/";
if (!file_exists($file_dir.$name)){
header("Content-type: text/html; charset=utf-8");
echo "File not found!";
exit;
} else {
$file = fopen($file_dir.$name,"r");
Header("Content-type: application/octet-stream");
Header("Accept-Ranges: bytes");
Header("Accept-Length: ".filesize($file_dir . $name));
Header("Content-Disposition: attachment; filename=".$name);
echo fread($file, filesize($file_dir.$name));
fclose($file);
}
}
php 代码下载_PHP实现下载功能的代码相关推荐
- php9宫格抽奖程序_PHP实现抽奖功能实例代码
在项目开发中经常会遇到花钱抽奖类型的需求.但是老板总是担心用户用小钱抽到大奖.这样会导致项目亏损.下边这段代码可以有效制止抽奖项目亏钱. 个人奖池: 语言:thinkphp redis mysql 表 ...
- php mysql随机抽奖源码_PHP实现抽奖功能实例代码
在项目开发中经常会遇到花钱抽奖类型的需求.但是老板总是担心用户用小钱抽到大奖.这样会导致项目亏损.下边这段代码可以有效制止抽奖项目亏钱. 个人奖池: 语言:thinkphp redis mysql 表 ...
- HTML页面打印功能js代码,JavaScript_js实现页面打印功能实例代码(附去页眉页脚功能代码),复制代码 代码如下: html - phpStudy...
js实现页面打印功能实例代码(附去页眉页脚功能代码) 复制代码 代码如下: @media print{ .print {display:block;} .notPrint {display:none; ...
- java调色板代码_简易网页调色板功能调用代码_html
简易网页调色板功能调用代码 colorSelect('色值输入框ID','显示色值的容器ID',event) 调用起来很简单,任何物品onClick就可以. 以下是html网页特效代码,点击运行按钮可 ...
- 杉德支付php代码实现_php实现微信支付的代码
这篇文章主要介绍了关于php实现微信支付的代码,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下 1: 获取code;window.location.href="https:// ...
- php留言板可以上传图片代码,php实现留言板功能(代码详解)
简单的PHP留言板制作 做基础的留言板功能 需要三张表: 员工表,留言表,好友表 首先造一个登入页面: 帐号: 口令: 上图: 不多说,没毛病 然后来写处理页面: Query($sql); if(!e ...
- python编程实例视屏-使用Python实现视频下载功能实例代码
最近一两年短视频业务风生水起,各个视频网站都有各自特色的短视频内容.如果有一个程序可以把各大视频网站的热门用户最新发布的视频下载下来,不仅方便了观看,还可以将没有版权的视频发布在个人社交网站上,增加自 ...
- python sftp_Python使用sftp实现上传和下载功能(实例代码)
在Python中可以使用paramiko模块中的sftp登陆远程主机,实现上传和下载功能. 1.功能实现 根据输入参数判断是文件还是目录,进行上传和下载 本地参数local需要与远程参数remote类 ...
- php功能代码下载,PHP实现下载功能的代码
PHP实现下载功能的代码,并实现安全下载,隐藏文件真实地址等,需要的朋友可以参考下 wzskynet#163.com ·php escapeshellcmd多字节编码漏洞 ·详细讲解PHP中缓存技术的 ...
最新文章
- Halcon学习之六:获取Image图像中Region区域的特征参数
- C/C++语言入门篇 -- 文件操作
- docker自动部署
- WebRTC通话原理
- SVN更新项目A C D M G U R I的含义
- C++(11)--编程实践1-经典养成类游戏简单实践
- Jupyter-Notebook插入公式
- 网页版深度学习模型编辑器,搭建运行样样都行,还能3D可视化
- WPF编游戏系列 之六 动画效果(1)
- syscall 系统调用陷入_系统调用深度剖析(上)
- sequelize模型关联_使用Sequelize来计算关联模型中的行数(其中id ='x')
- ADFS部署过程中设置network service对证书的读取权限
- tensorflow之卷积神经网络
- c语言 graph,基于图(graph)的应用举例
- ScheduledThreadPoolExecutor部分源码学习
- 迅雷极速版-致敬极简与商业
- win10 家庭版升级win11
- word文件退出只读模式
- 联想E43升级bios激活windows 7
- 基于树莓派实现简易-智能家居
热门文章
- pcie usb3.0 驱动 for linux_微软WSL——Linux桌面版未来之光
- linux系统能装什么显卡,Linux系统下安装显卡驱动
- 使用java连接ftp服务器_Java如何连接到FTP服务器?
- spring boot mybatis 整合_Spring、MyBatis和SpringMVC的整合
- android不能在主线程,android.os.NetworkOnMainThreadException 在4.0之后谷歌强制要求连接网络不能在主线程进行访问(示例代码)...
- 声场测试话筒_国内外常见的测量话筒有哪些?大师们身边必备这几款!
- 手机python编程文件如何转文档_Python 开发者面向文档编程的正确姿势
- 脚本格式(写脚本完成后最好完成后做一些脚本格式初始化)
- java实现手机充电_java – 如何知道手机是否正在充电
- uniapp 统计_“uni统计”震撼来袭 - 1份报表,掌握全景数据(App及各种小程序)