PHP文件下载函数(从MySQL提取文件路径)

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: <?php header("Content-type: text/html;charset=utf-8"); require("include/MysqlConn.php"); // 获得ID $id=$_GET['id']; // 判断是否有参数 if (!$id) {     die ("缺少.
<?php
header("Content-type: text/html;charset=utf-8");
require("include/MysqlConn.php");
// 获得ID
$id=$_GET['id'];
// 判断是否有参数
if (!$id)
{
    die ("缺少参数!");
}
// 文件保存地址
$FilePath='upload/download/';
// 文件名称
$FileName='';
// 下载文件另存名称
$SaveFileName='';
// 连接数据库
$conn=mysql_connect($Db_Server,$Db_User,$Db_Pwd);
// 判断连接是否成功
if (!$conn)
{
    die("不能连接数据库,错误是: " . mysql_error());
}
// 数据库输出编码,应该与你的数据库编码保持一致。建议用UTF-8国际标准编码
mysql_query("set names 'utf8'");
// 打开数据库
$db_selected = mysql_select_db($Db_Name, $conn);
// 判断打开是否成功
if (!$db_selected)
{
    die ("不能打开数据库,错误是: " . mysql_error());
}
// SQL语句
$sql ="select * from download WHERE download_id='".$id."'";
// 查询SQL语句
$result = mysql_query($sql,$conn);
// 循环读取数据
while($row = mysql_fetch_array($result))
{
// 文件名称
$FileName=$row['Download_FileName'];
// 下载文件名称
$SaveFileName=$row['Download_SaveFileName'];
}
// 使用完毕关闭数据库连接
mysql_close();
// 下载文件函数
function DownloadFile($url,$SaveFileName) 
{  
$FileName=$url;
    $file=fopen($FileName,"rb");
    Header("Content-type:application/octet-stream");
    Header("Accept-Ranges:bytes");
    Header("Content-Disposition:attachment;filename=".$SaveFileName);
$contents="";
// 读取文件
    while (!feof($file))
    {  
    $contents.=fread($file,8192);
    }  
    echo $contents;
    // 关闭文件
    fclose($file);
}
// 文件下载网址
$url=$FilePath.$FileName;
// 判断是否有文件
if (file_exists($url)) 
{
// 下载文件函数
DownloadFile($url,$SaveFileName);
}
?>

--------------------------------------

我有几张阿里云幸运券分享给你,用券购买或者升级阿里云相应产品会有特惠惊喜哦!把想要买的产品的幸运券都领走吧!快下手,马上就要抢光了。 
https://promotion.aliyun.com/ntms/act/ambassador/sharetouser.html?userCode=6evata1e&utm_source=6evata1e
相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
1天前
|
关系型数据库 MySQL PHP
unbuntu搭建LAMP(Apache2+PHP+MySQL+phpmyadmin)
unbuntu搭建LAMP(Apache2+PHP+MySQL+phpmyadmin)
|
2天前
|
存储 SQL 关系型数据库
【MySQL进阶之路 | 基础篇】存储函数
【MySQL进阶之路 | 基础篇】存储函数
|
2天前
|
SQL 关系型数据库 MySQL
【MySQL进阶之路 | 基础篇】MySQL函数之单行函数
【MySQL进阶之路 | 基础篇】MySQL函数之单行函数
|
2天前
|
关系型数据库 MySQL 数据库
【MySQL】内置函数 -- 详解
【MySQL】内置函数 -- 详解
|
9天前
|
SQL 关系型数据库 MySQL
MySQL第三战:CRUD,函数1以及union&union all
MySQL第三战:CRUD,函数1以及union&union all
|
9天前
|
PHP Perl
PHP-ereg()函数
但再次强调,不建议使用ereg()函数,而应该改用preg_match()函数来执行更灵活和强大的正则表达式匹配操作。
22 4
|
9天前
|
关系型数据库 MySQL Linux
【MySQL-10】数据库函数-案例演示【字符串/数值/日期/流程控制函数】(代码演示&可cv代码)
【MySQL-10】数据库函数-案例演示【字符串/数值/日期/流程控制函数】(代码演示&可cv代码)
【MySQL-10】数据库函数-案例演示【字符串/数值/日期/流程控制函数】(代码演示&可cv代码)
|
9天前
|
存储 关系型数据库 MySQL
MySQL 格式化日期函数 DATE_FORMAT(), FROM_UNIXTIME() 和 UNIX_TIMESTAMP() 之间区别
MySQL 格式化日期函数 DATE_FORMAT(), FROM_UNIXTIME() 和 UNIX_TIMESTAMP() 之间区别
|
9天前
|
安全 PHP 数据库
【PHP开发专栏】PHP文件包含漏洞与防范
【4月更文挑战第30天】本文探讨了PHP文件包含漏洞,该漏洞让攻击者能执行恶意代码或访问敏感信息。文章分为三部分:原理、影响和防范。文件包含函数(如`include`和`require`)在攻击者控制文件名时可能导致漏洞。影响包括执行恶意代码、泄露敏感信息和影响服务器性能。防范措施包括验证文件名安全性、使用安全包含函数、设置安全包含路径和参数,以及定期更新和维护代码及库。开发者应重视此问题,采取相应措施保障应用安全。
|
9天前
|
关系型数据库 MySQL PHP
【PHP 开发专栏】PHP 连接 MySQL 数据库的方法
【4月更文挑战第30天】本文介绍了 PHP 连接 MySQL 的两种主要方法:mysqli 和 PDO 扩展,包括连接、查询和处理结果的基本步骤。还讨论了连接参数设置、常见问题及解决方法,如连接失败、权限和字符集问题。此外,提到了高级技巧如使用连接池和缓存连接信息以优化性能。最后,通过实际案例分析了在用户登录系统和数据管理中的应用。

推荐镜像

更多