当前位置:首页 » 编程语言 » php下载统计

php下载统计

发布时间: 2023-11-03 20:09:27

php典型模块与项目实战大全:PHP文件下载的原理及实现

PHP文件下载的原理及实现

通常文件下载过程是十分简单的 建立一个链接指向到目标文件就可以了 例如下面的链接

<a href=// xxx /xxx rar>点击下载文件</a>

但是 实际情况可能会稍复杂 比如需要用户填写完整注册信息后才可以下载该文件 这时最先想到的是使用Redirect的方式 下面介绍两种方式

( )用Redirect方式 先检查表格是否已经填写完毕和完整 然后将链接指到该文件 这样用户就可以下载 请看下面的示例代码

<?php

/*文件功能 检查变量form是否完整*/

if($form){

//重新定向浏览器指向

Header( Location: // // xxx /xxx rar )

exit;

}

?>

( )根据下载文件的序号来查找 链接的形式如下

<a href= // xxx /download php?id= >点击下载文件</a>

上面的链接使用ID方式接收要下载文件的编号 然后再用Redirect的方式连接到真实的文件链接

以上这两种方法虽然实现了文件的下载功能 但是缺点是直接暴露了文件所属的路径 而且没有防盗链的功能 所以上面的方式是简单直接但存在安全隐患的文件下载方式 在PHP中 通常是利用header()函数和fread()函数来实现安全的文件下载

例如 需要下载的是一个文件名为xxx rar的文件 首先创建文件是download php的PHP文件 通过前面的例子很容易通过文件的ID号从数据库中得到待下载文件的真实位置 在获得文件的真实存储位置后 可缺培悉以通过header()函数的location参数直接重定向到这个文件 但是这样仍然是不安全的 因为某些下载软件还是可以通过重定向分析获得该文件的位置信息 因此需要用另外一种方法 就是PHP的文件处理API函数 它是通过fread()函数把文件直接输出到浏览器提示用户下载 这样所有的处理都是在服务器端完成的 因此用户就无法获得文件具体存储位置信息的 示例代码如下

<?

$file_name = xxx rar ; //下载文件名

$file_dir = /up/ ;中纤 //下载文件存放目录

//检查文件是否存在

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 ()

}

?>

【代码解读】

上述代码中 程序发送Header信息是用来告诉Apache和浏览器下载文件的相关信息的 content type的含义代表文件MIME类型是文件流格式 如果在Apache配置里面把文件的MIME类型设为application/octet stream(如add application/octet stream xxx rar) 那么浏览器(客户端伏乎)就会知道 这是一个文件流格式的文件并提示用户下载 Accept Ranges是一个响应头标 它允许服务器指明将在给定的偏移和长度处 为资源组成部分的接受请求 该头标的值被理解为请求范围的度量单位 Content Length是指定包含于请求或响应中数据的字节长度 例如 Content Length: Content Disposition:attachment是用来告诉浏览器 文件是可以当做附件被下载 下载后的文件名称为$file_name该变量的值

运行download php文件 效果如图 所示 从图中可以看到文件按照预想的方式被提示下载 单击 保存 按钮将文件保存在本地

图 PHP文件安全下载

返回目录 PHP典型模块与项目实战大全

编辑推荐

Java Web开发详解

PHP Web开发学习实录

lishixin/Article/program/PHP/201311/21519

❷ PHP如何实现批量下载功能

原理很简单,通过一个含有图片地址的数组循环,然后使用PHP的file_get_contents函数取得图片,在使用file_put_contents函数把图片保存下来。就这样简单,希望能帮到你.顺便提供一组PHP批量下载图片文件代码供你参考:set_time_limit(0);//设置PHP超时时间$imagesURLArray
=
array_unique($imagesURLArray
);foreach($imagesURLArray
as
$imagesURL)
{
echo
$imagesURL;
echo
"

❸ 基于php的开源文档管理程序有哪些

OpenGoo PHP开源文档管理系统
OpenGoo是一套基于ExtJs+XAMP(Apache、PHP、Mysql)开发的开源web office。适用于任何单位或个人创建,共享,协作维护和发布它们所有内部与外部文档。
relayb
relayb是一个Ajax目录管理器。支持拖放操作文件和文件夹。动态加载文件结构。文件上传提示进度条。缩略图查看包括PDF格式,支持多用户和多账号。
Simple Directory Listing
Simple Directory Listing提供一个类似于apache http服务器目录列表的文档管理界面。拥有复制,移动,删除,重命名,创建文件夹/文件。上传/下载文件,Unicode支持,缩略图查看,RSS发布等。
CKFinder
CKFinder是一个易于使用的Ajax文件管理器。提供文件夹树形结构(Folders tree)导航菜单,多语言支持(自动探测用),支持创建/重命名/删除文件和文件夹,集成FCKeditor在线编辑器。
phpWebFtp
phpWebFtp是一个基于Web的Ftp客户端,可以连接至任意Ftp服务器。内置22种语言包。易于在Binary/ASCII两种模式下切换。提供WYSIWYG文件编辑器用于编辑.htm文件。内置文件与目录下载模式。支持解压zip文件等。
CuteFlow
CuteFlow是一个基于Web的文档流转/工作流工具。用户定义好一个文档之后就会按指定的流程一步一步地转发给列表中的每一个用户。
Epiware
Epiware是一个AJAX支持的项目与文档管理Web应用系统。它提供了一套完整的文件管理功能包括文档上传,下载,版本控制,审核,变化通知和访问历史列表等。Epiware还为开发团队创建一个安全的信息交流与相互协作平台。
PHP Navigator
基于Web运用PHP+Ajax技术开发的PHP开源文档管理系统。它具有WindowsXP风格的操作界面。使你感觉像在Windows中。
DocMgr
DocMgr是一个基于PHP+Postgresql构建的Web文档管理系统。支持利用tsearch2对大部分流行的文档格式进行全文索引。它同样包含访问控制列表,用户权限管理和文件多级分组功能。
SimpleDoc
SimpleDoc是一个基于web的PHP开源文档管理系统。它的界面简单而且直观(以树的结构进行管理,运用Ajax技术使得当修改内容时不需要刷新浏览器)。SimpleDoc不需要数据库支持。
DocumentManager
Document Manager是一个包含权限管理与邮件提醒功能基于Web的文档管理器。无需要数据库支持。
KnowledgeTree
KnowledgeTree是一个开源基于Web的文档管理系统。它具有知识管理,文档版本控制,分层文档管理和支持一些流行的文件格式也可以自定文件类型等。
Owl Intranet Engine
Owl是一个多用户的PHP开源文档管理系统。它可对文件夹和文件设置权限,基于角色权限管理,具有易于使用并且简洁的用户操作与管理界面,能够对文件夹和文件 进行监控,支持对文本,MS-Word和PDF文件进行全文搜索,提供下载统计功能,数据库备份工具,新闻系统,版本控制,回收站,自定文档类型等等。

热点内容
压缩内存软件 发布:2025-01-31 16:51:39 浏览:145
脚本lcd 发布:2025-01-31 16:41:02 浏览:515
安卓selinux干什么用的 发布:2025-01-31 16:32:04 浏览:531
侠盗猎车手加钱密码是多少 发布:2025-01-31 15:44:28 浏览:662
没密码怎么登微信 发布:2025-01-31 15:33:51 浏览:737
c语言死机程序 发布:2025-01-31 15:07:52 浏览:18
编程教育装修 发布:2025-01-31 15:04:38 浏览:402
函数和存储过程的区别 发布:2025-01-31 14:39:12 浏览:609
地下室柱子箍筋的加密 发布:2025-01-31 14:36:11 浏览:934
手机拍摄视频在哪个文件夹 发布:2025-01-31 14:34:28 浏览:761