这里的下载,指的是 弹出下载提示框。
第一种:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
<?php function downfile()
{ $filename = realpath ( "resume.html" ); //文件名
$date = date ( "Ymd-H:i:m" );
Header( "Content-type: application/octet-stream " );
Header( "Accept-Ranges: bytes " );
Header( "Accept-Length: " . filesize ( $filename ));
header( "Content-Disposition: attachment; filename= {$date}.doc" );
echo file_get_contents ( $filename );
readfile( $filename );
} downfile(); ?> |
或 (推荐这种方法,亲测可行,其他的没测试)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
<?php function downfile( $fileurl ) { ob_start(); $filename = $fileurl ; $date = date ( "Ymd-H:i:m" ); $size =readfile( $filename ); header( "Content-type: application/octet-stream " ); header( "Accept-Ranges: bytes " ); header( "Content-Disposition: attachment; filename= {$date}.doc" ); header( "Accept-Length: " . $size ); } $url = "url地址" ; downfile( $url ); ?> |
第二种:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
<?php function downfile( $fileurl )
{ $filename = $fileurl ;
$file = fopen ( $filename , "rb" );
Header( "Content-type: application/octet-stream " );
Header( "Accept-Ranges: bytes " );
Header( "Content-Disposition: attachment; filename= 4.doc" );
$contents = "" ;
while (! feof ( $file )) {
$contents .= fread ( $file , 8192);
} echo $contents ;
fclose( $file );
} $url = "url地址" ;
downfile( $url );
?> |
PHP实现下载文件的两种方法。分享下,有用到的朋友看看哦。
方法一:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
<?php /** * 下载文件 * header函数 * */ header( 'Content-Description: File Transfer' );
header( 'Content-Type: application/octet-stream' );
header( 'Content-Disposition: attachment; filename=' . basename ( $filepath ));
header( 'Content-Transfer-Encoding: binary' );
header('Expires: 0′); header('Cache-Control: must-revalidate, post-check=0, pre-check=0′); header( 'Pragma: public' );
header( 'Content-Length: ' . filesize ( $filepath ));
readfile( $file_path );
?> |
了解php中header函数的用法。
方法二:
1
2
3
4
5
6
7
8
9
10
|
<?php //文件下载 //readfile $fileinfo = pathinfo ( $filename );
header( 'Content-type: application/x-' . $fileinfo [ 'extension' ]);
header( 'Content-Disposition: attachment; filename=' . $fileinfo [ 'basename' ]);
header( 'Content-Length: ' . filesize ( $filename ));
readfile( $thefile );
exit ();
?> |
php 下载保存文件保存到本地的两种实现方法的更多相关文章
-
【转】php 下载保存文件保存到本地的两种实现方法
来源:http://www.jb51.net/article/40485.htm 第一种: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 <?php function d ...
-
javascript文件夹选择框的两种解决方案
javascript文件夹选择框的两种解决方案 解决方案1:调用windows 的shell,但会有安全问题. * browseFolder.js * 该文件定义了BrowseFolder()函数,它 ...
-
web.config文件中配置数据库连接的两种方式
web.config文件中配置数据库连接的两种方式 标签: 数据库webconfig 2015-04-28 18:18 31590人阅读 评论(1)收藏举报 分类: 数据库(74) 在网站开发 ...
-
文件批量上传-统一附件管理器-在线预览文件(有互联网和没有两种)--SNF快速开发平台3.0
实际上在SNF里使用附件管理是非常简单的事情,一句代码就可以搞定.但我也要在这里记录一下统一附件管理器能满足的需求. 通用的附件管理,不要重复开发,调用尽量简洁. 批量文件上传,并对每个文件大小限制, ...
-
Java学习-014-文本文件写入实例源代码(两种写入方式)
此文源码主要为应用 Java 读取文本文件内容实例的源代码.若有不足之处,敬请大神指正,不胜感激! 第一种:文本文件写入,若文件存在则删除原文件,并重新创建文件.源代码如下所示: /** * @fun ...
-
Java学习-013-文本文件读取实例源代码(两种数据返回格式)
此文源码主要为应用 Java 读取文本文件内容实例的源代码.若有不足之处,敬请大神指正,不胜感激! 1.读取的文本文件内容以一维数组[LinkedList<String>]的形式返回,源代 ...
-
jQuery ajax调用后台aspx后台文件的两种常见方法(不是ashx)
在asp.net webForm开发中,用Jquery ajax调用aspx页面的方法常用的有两种:下面我来简单介绍一下. [WebMethod] public static string SayHe ...
-
JAVA文件的两种读取方法和三种写入方法
在使用java对文件进行读写操作时,有多种方法可以使用,但不同的方法有不同的性能. 此文对常用的读写方法进行了整理,以备不时之需. 1.文件的读取 主要介绍两种常用的读取方法.按行读取和按字符块读取. ...
-
导模块的细节:(跨文件导入模块 &;模块的两种执行方式) | 包的概念与使用 | 包中的相对导入语法
今日内容 包: 1. 导入模块的细节 2. 包的概念与使用 3. 包中的相对导入语法 跨文件夹导入模块 1. 假设有一个文件夹a ,a 的下面有一个ma 的模块,如果a文件夹所在目录在环境变量,a文件 ...
随机推荐
-
React Native之FlexBox介绍和使用
# 前言 学习本系列内容需要具备一定 HTML 开发基础,没有基础的朋友可以先转至 HTML快速入门(一) 学习 本人接触 React Native 时间并不是特别长,所以对其中的内容和性质了解可能会 ...
-
Ubuntu学习总结-03 安装软件 &; 技巧
1 UBuntu 安装 Googole Chrome 首先下载软件 wget https://dl.google.com/linux/direct/google-chrome-stable_curre ...
-
KVO机制浅析和实例演示
什么是KVO? KVO是Key-Value-Observing的缩写,通过KVO这种机制对象可以通过它得到其他对象的某个属性的变更通知.这种机制在MVC模式下显得更为重要,KVO可以让视图对象经过控制 ...
-
HDU 1024 (不重叠m段最大和) Max Sum Plus Plus
题解是看的这里的: http://www.acmerblog.com/hdu-1024-Max-Sum-Plus-Plus-1276.html 当前这个状态是dp[i][j],i 表示当前的段,j表示 ...
-
Eclipse远程提交hadoop集群任务
文章概览: 1.前言 2.Eclipse查看远程hadoop集群文件 3.Eclipse提交远程hadoop集群任务 4.小结 1 前言 Hadoop高可用品台搭建完备后,参见<Hadoop ...
- java 学习心得
-
【Android 应用开发】Android 数据存储 之 SQLite数据库详解
. 作者 :万境绝尘 转载请注明出处 : http://blog.csdn.net/shulianghan/article/details/19028665 . SQLiteDataBase示例程序下 ...
-
Pandas 基础(17) - to_datetime
这一节依然是关于时间的知识, 在平时的工作中, 有一个非常令我们恼火的就是时间的格式可以有很多种表达, 比如下面这张图, 我们看到同样是 2017年1月5日, 可以有很多种时间的格式, 我们需要先将格 ...
-
《Effective Modern C++》翻译--条款2: 理解auto自己主动类型推导
条款2: 理解auto自己主动类型推导 假设你已经读过条款1关于模板类型推导的内容,那么你差点儿已经知道了关于auto类型推导的所有. 至于为什么auto类型推导就是模板类型推导仅仅有一个地方感到好奇 ...
-
SVD图片有损压缩测试
注意文件名别保持成svd.m,这样与系统的默认svd程序冲突 图片处理函数生成的三组二维数组对应RGB,处理时保留一组 clear all; close all; clc; a1=imread('C: ...