当前位置:首页 » 编程语言 » php文件下载代码

php文件下载代码

发布时间: 2022-10-03 14:04:42

php里怎么做下载文件代码(主要是能够在苹果手机里。)

<ahref="a.txt"download>点击下载a.txt文件</a>

② thinkphp的文件下载怎么实现,急需具体的代码

public function file_down($id){

if(empty($_GET['id'])){
redirect("文件不存在跳转页面");
}else{//如果要加登录条件,这里可以自己加

$dl=D('downlist');
$map['id'] = array('eq',$_GET['id']);
$list=$dl->where($map)->find();

if ($list == false) {//文件不存在,可以跳转到其它页面
header('HTTP/1.0 404 Not Found');
header('Location: .');
} else {
header("Expires: ".gmdate("D, d M Y H:i:s", time() + 3600000)." GMT");
header('Content-type:application/octet-stream', true);
echo($list["file_zip"]);//file_zip为打包文件字段
}

}

}
//注:字段file_zip需要使用ZipArchive打包存储

③ 求一个简单的PHP下载代码

<?php
// 设置错误报告
error_reporting ( E_ERROR | E_NOTICE );
ini_set ( 'display_errors', 0 );

// 大文件时避免脚本执行超时
set_time_limit ( 600 );

$filename = '';
if (! empty( $_GET ['f'] )) {
$filename = $_GET ['f'];
} else {
// 未指定文件名
exit ( 'filename required.' );
}

// 这里你应该加上文件名过滤,防止跨目录,下载不希望被下载的文件
// TODO: 文件安全处理

$file_size = -1;
$is_remote_file = ( strstr ( $filename, 'http:' ) !== false );

// 处理本地文件
if ( ! $is_remote_file ) {

$filename = dirname( __FILE__ ) . '/' . $filename; // 获取绝对路径

if (! file_exists( $filename )) {
exit ( 'File Not Exists.' );
}
}

// 获取文件大小,这样浏览器才能正确的知道文件大小
$file_size = intval ( sprintf ('%u', filesize ( $filename ) ) );

// 设置内存限制, readfile 是将文件读入缓冲区的,所以会占用文件大小的数量一样的内存
ini_set ( 'memory_limit', '512M' );

// 关闭 gz 压缩,部分浏览器在启用 gz 的时候下载异常
if ( ini_get( 'zlib.output_compression' ) )
@ini_set ( 'zlib.output_compression', 'Off' );

// 设置内容类型报头,告诉浏览器作为二进制流附件下载
header ( 'Content-Type: application/octet-stream' );
header ( 'Content-Disposition: attachment; filename="' . basename( $filename ) . '"' );

// 有时候远程文件无法获取其大小
if ( $file_size != -1 ) {
header ( 'Content-Length: ' . $file_size );
}

// 准备输出文件
@readfile ( $filename );
flush ();
exit ();

这是我们实际的产品代码的一部分。不是网上复制粘贴的。经过测试是可以正常工作的。
但是远程文件,有时候是需要服务器启用设置的。也就是 URL 包装器,如果不开启,无法正常工作。
但是请注意,PHP5里面readfile最大只支持2M的文件下载。如果需要大文件支持,采用下面的代码替换 readfile 函数:

function readfileEx($filename) {
$chunksize = 1024 * 1024; // 缓冲区块大小
$handle = fopen($filename, 'rb');
$buffer = '';
while (!feof($handle)) {
$buffer = fread($handle, $chunksize);
echo ($buffer);
flush();
}
fclose($handle);
}

④ php中怎么实现文件下载功能

两种方法:

1.直接做个超链接,地址为文件的地址

<ahref="文件地址">下载</a>

2.流输出

<?php

$file=fopen('文件地址',"r");

header("Content-Type:application/octet-stream");

header("Accept-Ranges:bytes");

header("Accept-Length:".filesize('文件地址'));

header("Content-Disposition:attachment;filename=文件名称");

echofread($file,filesize('文件地址'));

fclose($file);

?>

推荐第二种

因为第一种方法只能下载浏览器不能解析的文件,比如rar啊,脚本文件之类。如果文件是图片或者txt文档,就会直接在浏览器中打开。

而第二种方法是直接输出的文件流,不存在上述问题。

你可以检查一下你传值过来的路径是否正确,还有,流输出后面不要再进行任何操作了。

拓展资料:

集成开发环境是一种集成了软件开发过程中所需主要工具的集成开发环境,其功能包括但不仅限于代码高亮、代码补全、调试、构建、版本控制等。一些常见的PHP IDEs如下:

  • Zend Studio:商业版,Zend官方出品,基于eclipse

  • Eclipsewith PDT:免费

  • Coda:商业版,针对Mac用户

  • NetBeans:免费,功能强大

  • PHP Storm:商业版

  • AptanaStudio:免费

  • PhpEd:商业版

  • KomodoIDE/Edit:IDE为商业版,Edit可免费使用

  • Adobe Dreamweaver:商业版

  • 除去集成开发环境,具备代码高亮功能的常见文本编辑器因其轻巧灵活也常被选作开发工具,例如:Notepad++、Editplus、SublimeText、Everedit(国人开发)等等。

PHP的特性包括:

1. PHP 独特的语法混合了 C、java、Perl 以及 PHP 自创新的语法。

2. PHP可以比CGI或者Perl更快速的执行动态网页——动态页面方面,与其他的编程语言相比,

PHP是将程序嵌入到HTML文档中去执行,执行效率比完全生成htmL标记的CGI要高许多;

PHP具有非常强大的功能,所有的CGI的功能PHP都能实现。

3. PHP支持几乎所有流行的数据库以及操作系统。

4. 最重要的是PHP可以用C、C++进行程序的扩展!

参考资料:网络:PHP

⑤ php文件怎么下载

php文件一样可以用BT软件打开的,放心使用,没问题的。我以前也下过好多PHP的种子文件。
你是要让你的装了IIS的机器支持PHP呢还是只是单纯的打开*.php的文件?

如果是要支持PHP,那么你要装专门的PHP解释器。

首先你去下载php-4.3.4-Win32.zip。

下面为配置步骤:

1)将php-4.3.3RC4-Win32.zip里面的所有文件和文件夹解压缩并放置在C:\\php4\\文件夹中,没有自己创建该文件夹

2)进入php4文件夹,查看根目录和子目录,把所有.dll文件都统统复制粘贴到C:\\WINNT\\system32(WIN2K)或C:\\WINDOWS\\system32(WINXP)中

3)把php4文件夹里面的php.ini-dist和php.exe文件复制到

C:\\WINNT\\(WIN2K)或C:\\WINDOWS\\(WINXP)中,并将php.ini-dist文件改为php.ini

4)双击php.ini打开该配置文件,进行下面3个地方的修改:

1> 把extension_dir = "C:\\php4\\extensions" 改为你安装php4的 extensions文件夹路径

2> 把 ;cgi.force_redirect = 1 改为 cgi.force_redirect = 0

3> 把 register_globals = Off 改为 register_globals = On

4> 找到 ;Windows Extensions 段,你应该可以看到如下代码

;

;extension=php_bz2.dll

;extension=php_cpdf.dll

;extension=php_crack.dll

;extension=php_curl.dll

;extension=php_db.dll

;extension=php_dba.dll

;extension=php_dbase.dll

;extension=php_dbx.dll

;extension=php_domxml.dll

;extension=php_exif.dll

;extension=php_fdf.dll

;extension=php_filepro.dll

;extension=php_gd2.dll

;extension=php_gettext.dll

;extension=php_hyperwave.dll

;extension=php_iconv.dll

;extension=php_ifx.dll

;extension=php_iisfunc.dll

;extension=php_imap.dll

;extension=php_interbase.dll

;extension=php_java.dll

;extension=php_ldap.dll

;extension=php_mbstring.dll

;extension=php_mcrypt.dll

;extension=php_mhash.dll

;extension=php_mime_magic.dll

;extension=php_ming.dll

;extension=php_mssql.dll

;extension=php_msql.dll

;extension=php_oci8.dll

;extension=php_openssl.dll

;extension=php_oracle.dll

;extension=php_pdf.dll

;extension=php_pgsql.dll

;extension=php_printer.dll

;extension=php_shmop.dll

;extension=php_snmp.dll

;extension=php_sockets.dll

;extension=php_sybase_ct.dll

;extension=php_w32api.dll

;extension=php_xmlrpc.dll

;extension=php_xslt.dll

;extension=php_yaz.dll

;extension=php_zip.dll

具体还得看你需要加载哪些.dll文件,不过你按照下面我这样改也行,主要是要加载的.dll文件就去掉前面的分号( ; ) :

;

;extension=php_bz2.dll

;extension=php_cpdf.dll

;extension=php_crack.dll

;extension=php_curl.dll

;extension=php_db.dll

;extension=php_dba.dll

;extension=php_dbase.dll

;extension=php_dbx.dll

;extension=php_domxml.dll

extension=php_exif.dll

;extension=php_fdf.dll

;extension=php_filepro.dll

extension=php_gd2.dll

;extension=php_gettext.dll

;extension=php_hyperwave.dll

;extension=php_iconv.dll

;extension=php_ifx.dll

;extension=php_iisfunc.dll

extension=php_imap.dll

;extension=php_interbase.dll

;extension=php_java.dll

;extension=php_ldap.dll

;extension=php_mbstring.dll

;extension=php_mcrypt.dll

;extension=php_mhash.dll

;extension=php_mime_magic.dll

;extension=php_ming.dll

;extension=php_mssql.dll

;extension=php_msql.dll

;extension=php_oci8.dll

;extension=php_openssl.dll

;extension=php_oracle.dll

;extension=php_pdf.dll

;extension=php_pgsql.dll

;extension=php_printer.dll

;extension=php_shmop.dll

;extension=php_snmp.dll

;extension=php_sockets.dll

;extension=php_sybase_ct.dll

;extension=php_w32api.dll

;extension=php_xmlrpc.dll

;extension=php_xslt.dll

;extension=php_yaz.dll

;extension=php_zip.dll

5)再次打开控制面板-管理工具-Internet服务管理器,在"默认web站点"上右键单击,选择"属性"

6)选中"默认 Web 站点 属性"窗口的"主目录"选项卡,点击右下角的"配置"按钮,出现"应用程序配置"窗口,点击"应用程序映射"下面的"添加"按钮,添加下面的程序映射:

可执行文件: C:\\php4\\php.exe %s %s (也就是你的php4文件夹路径)

扩展名: .php

确定完成配置!

7)切换到"默认 Web 站点 属性"窗口的"ISAPI筛选器"选项卡,点击右边的"添加"按钮,添加下面的一个筛选器:

筛选器名称: PHP

可执行文件: C:\\php4\\sapi\\php4isapi.dll (也就是你的php4文件夹的 sapi文件夹路径)

确定后关闭"Internet服务管理器"

8)继续切换到"默认 Web 站点 属性"窗口的"文档"选项卡,点击右边的"添加"按钮,添加如下"启用默认文档":

index.php 也可以添加 index.php3 index.php4 等等 看你的需要而定

点击左边的"↑"按钮,把index.php文档提升到最上面

现在你的IIS也支持PHP了.
PHP 是一种新型的 CGI 程序编写语言.应该说是个嵌入式脚本文件。和ASP、JSP有很多类似的功能。唯一不同的是,ASP要整站的解释在传递,而PHP则可以嵌入HTML代码里,和HTML一起发送。要读.PHP文件就要用PHP解释器。现在用的是PHP V4.3.0有支持Windows和 Unix/Linux的版本。当然你还要在自己机子上虚拟主机,可以用很出名的Apache软件。

.php可以用文本编辑器(如记事本、emeditor、phpedit等)打开。如果要运行它得安装相应的php解释器和web服务支持才行。

⑥ 急需一个完整的php文件下载案例代码。

我们一般实现下载都是调用url来下载,但是遇到ie能识别打开的文件就不能用这种方式了,比如下载一个图片、html网页等,这时就需要编程来实现,以下php代码可以解决:

<?
if(empty($_GET['FileName'])||empty($_GET['FileDir'])||empty($_GET['FileId'])){
echo'<script>alert("非法连接!");location.replace("index.php")</script>';exit();
}
$file_name=$_GET['FileName'];
$file_dir=$_GET['FileDir'];
$FileId=$_GET['FileId'];
$file_dir=$file_dir."/";
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);
//输出文件内容
echofread($file,filesize($file_dir.$file_name));
fclose($file);
exit();
}
?>

⑦ php中让文件循环下载的代码怎么写

自己写的方法 但是在中文路径下会 出现错误
/*
*查看问价夹中的子文件及其子文件夹
*$path 付文件夹路径
*return $arr_dir 文件夹中所有文件和子文件夹的信息
*/
function selDir($path){

$arr_dir = array();

if(is_file($path)){
header("Location: error.php");
exit;
}

$arr_dir = scandir($path);

foreach ($arr_dir as $v){

if($v != "." && $v != ".."){
//print "<hr>".$path.$v;
if(is_dir($path.'/'.$v)){
//print "<hr>是文件夹<hr>";
$arr_dir['dir'][] = array(
'fileUrl' => $path.'/'.$v,
'filename' => $v,
'type' => '文件夹',
'cTime' => @date('Y/m/d H:i',filectime($path.'/'.$v)+8*3600),
'mTime' => @date('Y/m/d H:i',filemtime($path.'/'.$v)+8*3600),
'filesize' => ''
);
}else{
//print "<hr>不是是文件夹<hr>";
$arr_dir['file'][] = array(
'fileUrl' => $path.'/'.$v,
'filename' => $v,
'type' => pathinfo($path.'/'.$v, PATHINFO_EXTENSION),
'cTime' => @date('Y/m/d H:i',filectime($path.'/'.$v)+8*3600),
'mTime' => @date('Y/m/d H:i',filemtime($path.'/'.$v)+8*3600),
'filesize' => filesize($path.'/'.$v)
);
}
}
}
//var_mp($arr_dir);
return $arr_dir;
}

⑧ php文件下载 先选择保存路径

PHP 文件下载代码示例如下:

<?php
//调用下载函数
downloadFile("index.html");


//定义下载函数,$fname参数为下载文件名
functiondownloadFile($fname){
$rename=$fname;
$filename=$fname;

$file_path=$_SERVER["DOCUMENT_ROOT"]."/oop/".$filename;
$file=@fopen($file_path,"r");
if(!$file){
exit('sorry,nofile!');
}
set_time_limit(0);
$ua=$_SERVER["HTTP_USER_AGENT"];
$encoded_filename=urlencode($rename);
$encoded_filename=str_replace("+","%20",$encoded_filename);
header('Content-Type:application/octet-stream');
if(preg_match("/MSIE/",$ua)){
header('Content-Disposition:attachment;filename="'.$encoded_filename.'"');
}elseif(preg_match("/Firefox/",$ua)){
header('Content-Disposition:attachment;filename*="utf8'''.$rename.'"');
}else{
header('Content-Disposition:attachment;filename="'.$rename.'"');
}
while(!feof($file)){
echofread($file,50000);
}
fclose($file);
exit;
}

?>

⑨ php中强制下载文件的代码(解决了IE下中文文件名乱码问题)

中间遇到一个问题是提交的中文文件名直接放到header里在IE下会变成乱码,解决方法是将文件名先urlencode一下再放入header,如下。
复制代码
代码如下:
<?php
$file_name
=
urlencode($_REQUEST['filename']);
header("Pragma:
public");
header("Expires:
0");
header("Cache-Control:
must-revalidate,
post-check=0,
pre-check=0");
header("Content-Type:
application/force-download");
header('Content-Type:
application/vnd.ms-excel;
charset=utf-8');
header("Content-Transfer-Encoding:
binary");
header('Content-Disposition:
attachment;
filename='.$file_name);
echo
stripslashes($_REQUEST['content']);
?>
解决PHP
Header下载文件在IE文件名中文乱码有两种常见的,一种是是把页面编码改成utf8,另一种是对中文url进入urlencode编码就可以解决了。
解决方案一(我的页面是utf-8编码):
复制代码
代码如下:
$filename
=
"中文.txt";
$ua
=
$_SERVER["HTTP_USER_AGENT"];
$encoded_filename
=
urlencode($filename);
$encoded_filename
=
str_replace("+",
"%20",
$encoded_filename);
header('Content-Type:
application/octet-stream');
if
(preg_match("/MSIE/",
$ua))
{
header('Content-Disposition:
attachment;
filename="'
.
$encoded_filename
.
'"');
}
else
if
(preg_match("/Firefox/",
$ua))
{
header('Content-Disposition:
attachment;
filename*="utf8'''
.
$filename
.
'"');
}
else
{
header('Content-Disposition:
attachment;
filename="'
.
$filename
.
'"');
}
解决方法二
将文件名先urlencode一下再放入header,如下。
代码如下:
复制代码
代码如下:
<?php
$file_name
=
urlencode($_REQUEST['filename']);
header("Pragma:
public");
header("Expires:
0");
header("Cache-Control:
must-revalidate,
post-check=0,
pre-check=0");
header("Content-Type:
application/force-download");
header('Content-Type:
application/vnd.ms-excel;
charset=utf-8');
header("Content-Transfer-Encoding:
binary");
header('Content-Disposition:
attachment;
filename='.$file_name);
echo
stripslashes($_REQUEST['content']);
?>

⑩ 有一段实现文件下载的php代码,之前使用下载成功,但现在无法使用了

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

注意这个的类型。。。文件不同参数不同

热点内容
安卓上哪里下大型游戏 发布:2024-12-23 15:10:58 浏览:189
明日之后目前适用于什么配置 发布:2024-12-23 14:56:09 浏览:56
php全角半角 发布:2024-12-23 14:55:17 浏览:829
手机上传助手 发布:2024-12-23 14:55:14 浏览:733
什么样的主机配置吃鸡开全效 发布:2024-12-23 14:55:13 浏览:830
安卓我的世界114版本有什么 发布:2024-12-23 14:42:17 浏览:711
vbox源码 发布:2024-12-23 14:41:32 浏览:278
诗经是怎么存储 发布:2024-12-23 14:41:29 浏览:660
屏蔽视频广告脚本 发布:2024-12-23 14:41:24 浏览:420
php解析pdf 发布:2024-12-23 14:40:01 浏览:819