php 下载保存文件保存到本地的两种实现方法

这里的下载,指的是 弹出下载提示框。

第一种:

?


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

?>

时间: 2024-08-29 12:47:48

php 下载保存文件保存到本地的两种实现方法的相关文章

SNF快速开发平台3.0之--文件批量上传-统一附件管理器-在线预览文件(有互联网和没有两种)

实际上在SNF里使用附件管理是非常简单的事情,一句代码就可以搞定.但我也要在这里记录一下统一附件管理器能满足的需求. 通用的附件管理,不要重复开发,调用尽量简洁. 批量文件上传,并对每个文件大小限制,客户端无刷新 可以对已经上传的附件进行名字变更,改成更友好的名称. 可以对已经上传的文件进行删除. 并记录文件大小,上传人.时间和修改人和时间等. 可以下载附件到本地电脑. 文件的在线预览,支持不安装office软件就可以预览(不管是图片还是office文档都得支持预览) 虽然比专业的图文档管理系统

uboot学习之二----主Makefile学习之四----两种编译方法:原地编译和单独输出文件夹编译

第57-123行: 57 # 58 # U-boot build supports producing a object files to the separate external 59 # directory. Two use cases are supported: 60 # 61 # 1) Add O= to the make command line 62 # 'make O=/tmp/build all' 63 # 64 # 2) Set environement variable

Java学习-014-文本文件写入实例源代码(两种写入方式)

此文源码主要为应用 Java 读取文本文件内容实例的源代码.若有不足之处,敬请大神指正,不胜感激! 第一种:文本文件写入,若文件存在则删除原文件,并重新创建文件.源代码如下所示: 1 /** 2 * @function 文本文件操作:写入数据 3 * 4 * @author Aaron.ffp 5 * @version V1.0.0: autoUISelenium main.java.aaron.java.tools FileUtils.java txtWrite, 2015-2-2 21:03

Java学习-013-文本文件读取实例源代码(两种数据返回格式)

此文源码主要为应用 Java 读取文本文件内容实例的源代码.若有不足之处,敬请大神指正,不胜感激! 1.读取的文本文件内容以一维数组[LinkedList<String>]的形式返回,源代码如下所示: 1 /** 2 * @function 文本文件操作:读取数据 3 * 4 * @author Aaron.ffp 5 * @version V1.0.0: autoUISelenium main.java.aaron.java.tools FileUtils.java txtRead, 201

流文件保存到本地的两种方法

1.FileStream fs = new FileStream(path, FileMode.Create);   fs.Write(ImageBuff, 0, ImageBuff.Length);   fs.Close(); 注释:ImageBuff 图片流,byte[]类型.path保存文件的路径 2. MemoryStream ms = new MemoryStream(ImageBuff);    Image img = Image.FromStream(ms);    img.Sav

Windows校验文件哈希hash的两种常用方式

大家经常都到哪儿去下载软件和应用程序呢?有没想过下载回来的软件.应用程序或资源是否安全呢?在 Windows 10 和 Office 2016 发布当初,很多没权限的朋友都使用第三方网站去下载安装映像.而大家如何保证自己下载回来的映像或软件就是官方版本,而没有被别人篡改过呢? 很多朋友会想到将下载回来的资源校验 MD5 或 SHA1 与官方版哈希值进行对比,如果无误则表示未被篡改.大家平常在 Windows 中都使用何种工具算校验值呢?本文向大家推荐 Windows 校验文件哈希的两种常用方式.

Windows Phone 8.1中安装包文件及其两种获取方法

Windows Phone中除了应用文件存储的三种文件类型:本地文件,漫游文件,临时文件.还有一种文件叫做安装包 文件,它是指应用程序编译之后生成的部署文件的内部数据.在安装包下的文件数据其实就是应用程序项目中添加的 文件,就比如Assets文件夹里面的图片文件等等.我们可以通过代码获取安装包下的文件,但是获取不到编译的文件 (源代码或者资类的文件). 那么哪些数据应该放到安装包文件中,哪些数据应该放到应用文件中呢?两种文件的地址和获取方式是不一样的,但 是获取的思想是一样的.应用文件的获取方式

将文件放到Android模拟器的SD卡中的两种解决方法

两种方式:一.窗口界面操作1.打开DDMS页面2.打开File Explorer页,如果没有,在Window --> Show View -->File Explorer3.一般就在mnt --> sdcard中4.在sdcard中,点击你要将文件放到的目的文件夹,这里如mp3文件夹5.点击文件夹后,在File Explorer页的右边有两个图标,一个是pull,一个是push,pull是将mp3里面的文件拉出去,push是将外面,如硬盘上的文件推到mp3文件夹里面来. 二.命令行方式启

java文件末尾追加内容的两种方式

java 开发中,偶尔会遇到在文件末尾对文件内容进行追加,实际上有多种方式可以实现,简单介绍两种: 一种是通过RandomAccessFile类实现,另一种是通过FileWriter类来实现. 实现方法很简单,没什么可多说的,直接看代码: 1 public static void main(String[] args) throws Exception { 2 File file=new File(filename); 3 RandomAccessFile raf=new RandomAcces