文档章节

php如何实现对各种文件下载

Adam-Lee
 Adam-Lee
发布于 2012/02/26 21:51
字数 306
阅读 2.9K
收藏 4

如果我们仅使用<a href='文件路径/文件名'>下载</a>或者js的window.location = '文件路径/文件名',且文件类型为浏览器能识别的,那么浏览器将会直接打开文件而不是弹出下载框下载文件,比如'.txt','.conf','.bin'文件等。当然js的document.execCommand('SaveAs','mycodes.txt')(第二个参数为要保存为的文件名)也能实现下载,但它兼容性不好,firefox下无效。这时如果你的环境支持php语言,那么你可以用header()来实现文件下载:

先看简单实例:

同目录下有两个文件index.php,test.php与供下载文件adam.txt:

test.php文件内容:

<?php

$filename = $filename = 'adam.txt';
echo "<a href='index.php?filename=".$filename."'>下载</a>";

?>

index.php文件内容:

<?php

$filename = $_REQUEST['filename'];

header("Content-Type:text/plain");
header('Content-Disposition:attachment;filename='.$filename);
header('Content-Transfer-Encodeing: binary');
readfile($filename);

?>

当你打开test.php并单击下载时将实现对adam.txt文件的下载。

同理,我们也可以实现对.jpg,.zip,.rar,.pdf等文件实现下载,这时只需把index.php中的header("Content-Type:text/plain")稍做修改,比如下面所示

header("Content-Type:application/zip");//zip或者rar

header("Content-Type:application/pdf");//pdf

header("Content-Type:image/jpeg");//图片

header("Content-Type:audio/mpeg");

© 著作权归作者所有

Adam-Lee
粉丝 50
博文 118
码字总数 166965
作品 0
深圳
程序员
私信 提问
加载中

评论(0)

Ubuntu、Debian 系统安装 PHP 7.4 教程,超简单,一把梭!

今天宇润教大家如何在 Ubuntu、Debian 系统(apt 包管理工具系的),一把梭安装 PHP 7.0-7.4! 很多情况下我们要在 Linux 环境下安装 PHP 环境都是比较头大的。 编译安装耗时长,各种参数和编...

宇润-不忘251-支持中医
02/22
66
0
windows纯手工安装php和Apache以及连接mysql

1、如何安装php on windows 选择下载相应的二进制文件下载,下载页面为: http://windows.php.net/download/ 下面问题,如何让Apache httpd 支持运行php 文件呢 2、配置Apache Configure Ap...

Oscarfff
2016/08/24
135
0
谁能告诉我下载功能怎么做比较好?

最近做个导出下载功能,各种头疼,求大神指点。 后端是python,导出一个PDF,只传给我一个存在服务器的文件路径,我用js在前端实现下载。 最初直接把文件路径直接放到a标签的href上,出了问题...

墨冥器庙
2013/03/22
263
0
php自学提升进阶路线

一、实战演练 熟悉语法&api -> 阅读zend、ci、wordpress源码 -> 用PHP独立开发项目 -> 深入了解PHP引擎实现细节、扩展编写、性能优化等 (1周)HTML+CSS HTML5+CSS3 (2-3天)留言板或记事本...

stone_
2016/07/11
314
0
Linux之lnmmp实现

一、概述 LNMMP环境是Linux + Nginx + Memcached + MySQL + PhP,即LNMP + memcached。 Memcached简介: 1、Memcached是一款开源、高性能、分布式内存对象缓存系统,可应用各种需要缓存的场景...

斜视天花板
2014/04/28
0
0

没有更多内容

加载失败,请刷新页面

加载更多

易鑫车贷人工客服电话是多少

易鑫车贷人工客服电话是多少O29-63O37558人工客服电话O29-688O2826方法,大家可以采取一些传统的方式,比如说打开易鑫车贷,然后设置,就会看到帮助与反馈的字眼,然后大家打开这到各种各样的问题...

fgrf
今天
41
0
IntelliJ 如何找到项目中 Deprecated 的方法

在一个项目中,如果我们标记了某些元素为 Deprecated 的话,如何让我们能够快速找到? 简单来说,你可以对项目进行 Code Inspection。 选择 Analyze > Inspect Code 在弹出的对话框中,对整个...

honeymoose
今天
85
0
Java中的排序算法:冒泡排序

学习了一种新的排序算法:冒泡排序,冒泡排序是一种交换排序,指比较相邻的两个元素,如果前者比后者大,就交换位置,继续进行比较。 通过例子来实现: import java.util.Arrays; public cl...

北芷南姜
今天
73
0
OSChina 周五乱弹 —— 你不仅要背负工作,还要背负领导

Osc乱弹歌单(2020)请戳(这里) 【今日歌曲】 @薛定谔的兄弟 :分享洛神有语创建的歌单「我喜欢的音乐」: 《Cold Rain》- AniFace 手机党少年们想听歌,请使劲儿戳(这里) @明月依稀 :露...

小小编辑
今天
498
4
个人环境之ubuntu的apt-get 总结

前言 apt-get是必须要学会的,如果搞定apt-get,可解决很多问题。接下来鸟才啊总结以往经验。 场景一 指定安装版本 先查看有软件有那些版本可以安装 apt-cache madison gcc-4.8 gcc-4.8 ...

鸟菜啊
今天
67
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部