1. 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
2. PHP网页上打包文件生成压缩文件zip,并弹出下载
既然你只是想学习如何打包.
那我重点就回答你这一块,正好我刚刚用到;
$filename="./".date('YmdH').".zip";//最终生成的文件名(含路径)
//生成文件
$zip=newZipArchive();//使用本类,linux需开启zlib,windows需取消php_zip.dll前的注释
if($zip->open($filename,ZIPARCHIVE::CREATE)!==TRUE){
exit('无法打开文件,或者文件创建失败');
}
//$fileNameArr就是一个存储文件路径的数组比如array('/a/1.jpg,/a/2.jpg....');
foreach($fileNameArras$val){
$zip->addFile($val,basename($val));//第二个参数是放在压缩包中的文件名称,如果文件可能会有重复,就需要注意一下
}
$zip->close();//关闭
//下面是输出下载;
header("Cache-Control:max-age=0");
header("Content-Description:FileTransfer");
header('Content-disposition:attachment;filename='.basename($filename));//文件名
header("Content-Type:application/zip");//zip格式的
header("Content-Transfer-Encoding:binary");//告诉浏览器,这是二进制文件
header('Content-Length:'.filesize($filename));//告诉浏览器,文件大小
@readfile($filename);//输出文件;
3. php执行file_put_contents后生成的文件如何自动下载到本地
file_put_contents只能生成文件在服务器上,无法读写客户端的文件系统,这是WEB的协议决定了的。
要想把file_put_contents生成在服务器上的文件发给浏览器用户,只有用下载的办法:文件生成到WEB可以访问的路径,然后使用<a href>建立链接让用户下载,示例代码:
file_put_contents('a.txt', $str);
echo '<a href=a.txt>下载文件</a>';
4. php实现文件下载代码~
echo "<a href='$file'>".$file."</a>"需要绝对路径,而且注意目录是不可以下载的。
<?php
$root="d:/";
if(is_dir($root)){
$openHandle=opendir($root);
while(false!==($file=readdir($openHandle))){
if(!is_dir($root.$file))
echo "<a href='$root$file'>".$file."</a><br/>";
}
closedir($openHandle);
}
else {
echo "文件夹不存在";
}
?>
5. php。求php点击页面内按钮生成文件并立即下载该文件的思路
Ajax请求后,返回已生成文件的路径 url_path, 然后 window.location.href = url_path;
如果不在本页面跳转就用window.open(url_path);
6. PHP如何遍历指定文件夹,获取所有文件列表并生成下载链接
试编写代码如下:
<?php
$dir="D:/WWW/ftp";//指定的路径
$sitepath='http://localhost/ftp/';
//遍历文件夹下所有文件
if(false!=($handle=opendir($dir))){
echo"$dir目录下的文件列表:<BR/>";
$i=0;
while(false!==($file=readdir($handle))){
if($file!="."&&$file!=".."&&!is_dir($dir.'/'.$file)){
echo'<ahref="'.$sitepath.$file.'">'.$file.'</a><br/>';
}
}
//关闭句柄
closedir($handle);
}
?>
代码中需要提示的是:
如果是运行于互联网上,需要考虑文件的访问安全性。
运行截图:
7. php下载文件
这个要在PHP中修改,文件保存时生成的文件名,这个一般都是自定义的,所以要你去代码中修改下定义名称就可以了
8. php 如何提供文件下载
$file_dir = "/public/www/download/";
路径不能这样写,没看问题补充以为你在linux下,
windows不能用/public/www/download/,
一定要用c:\public\www\download\,相信你应该能明白吧。
个人签名
-----------------------------------------------------
PHP开源网:http://www.php-open.org
PHP开源论坛:http://bbs.php-open.org
-----------------------------------------------------
9. php导出excel表、压缩成文件下载到本地如何实现
你好!你所提出的三个问题.我没怎么看懂.如果以第二个为主.我倒可以说说我的看法.
一.如何把数据赋到excel中?
答:sorry.没怎么明白.见谅.
二.导出为excel表?
答:有两种方法实现.1.phpexcel.(稍显复杂) 2.简单的(我讲这个.简单^_^)直接上代码.自己改一下名字 和字段名.就成.
<?php
error_reporting(0); //屏蔽警告和NOTICE等所有提示.包括error
Header( "Content-type: application/octet-stream ");
Header( "Accept-Ranges: bytes ");
Header( "Content-type:application/vnd.ms-excel;charset=Big5"); //此处写编码,如,UTF-8....
Header( "Content-Disposition:attachment;filename=abnormal_Report.xls "); //自己写文件名 *.xls
require "conn_mysql.php"; //连接mysql
$sql = "select * from `netart`.`abnormal_records` order by record_abtime desc";
$result = mysql_query($sql,$conn);
echo "<table width='100%' border='1' >";
echo"<tr>";
echo "<td style='color:red'> <font size=4> ID </font></td>";
echo "<td style='color:red'> <font size=4>异常时间 </font></td>";
echo "<td style='color:red'> <font size=4>异常地点 </font></td>";
echo "<td style='color:red'> <font size=4>详细内容 </font></td>";
echo "<td style='color:red'> <font size=4>提交人 </font></td>";
echo "<td style='color:red'> <font size=4>提交时间 </font> </td>";
echo "</tr>";
while ($rs=mysql_fetch_array($result)){
echo "<tr>";
echo "<td width='30'> {$rs['record_id']}</td>"; //用width 控制表格的宽度.自己改变.
echo "<td width='150'> {$rs['record_abtime']}</td>";
echo "<td width='80'> {$rs['record_abplace']}</td>";
echo "<td width='700'> {$rs['record_content']} </td>";
echo "<td width='60'> {$rs['record_username']} </td>";
echo "<td width='120'> {$rs['record_uptime']} </td>";
echo "</tr>";
}
echo "</tbale>";
?>
//以上代码.自己去改一下名字.和字段名就可以运行了.
==========================================================================
下面的代码针对MSSQL:(基本跟 Mysql一样啦.只是改用了ODBC)
<?php
error_reporting(0);
Header( "Content-type: application/octet-stream");
Header( "Accept-Ranges: bytes ");
Header( "Content-type:application/vnd.ms-excel;charset=Big5");
Header( "Content-Disposition:attachment;filename=Syslog_view.xls ");
require "conn_mssql.php";
session_start();
$flag1=@$_SESSION['flag_1'];
$flag2=@$_SESSION['flag_2'];
$flag3=@$_SESSION['flag_3'];
$content=@$_SESSION['content'];
$ip=@$_SESSION['ip'];
$content_2=@$_SESSION['content_2'];
$ip_2=@$_SESSION['ip_2'];
$time=@$_SESSION['time'];
if($flag1==1)
{ $sql_s="select SysLog.DateTime,SysLog.IP,SysLog.Message from NetPerfMon.dbo.SysLog where IP='$ip' and convert(varchar(10),DateTime,120)='$time' order by DateTime desc";}
if($flag2==2)
{ $sql_s="select SysLog.DateTime,SysLog.IP,SysLog.Message from NetPerfMon.dbo.SysLog where IP='$ip' and convert(varchar(10),DateTime,120)='$time' order by DateTime desc";}
if($flag3==3)
{$sql_s="select SysLog.DateTime,SysLog.IP,SysLog.Message from NetPerfMon.dbo.SysLog where IP='$ip' and Message like '%$content%' and convert(varchar(10),DateTime,120)='$time' order by DateTime desc";}
$res=odbc_do($link,$sql_s);
echo "<table width='100%' border='1'>";
echo"<tr>";
echo "<td style='color:red'> <font size=4> DateTime </font></td>";
echo "<td style='color:red'> <font size=4> Switch IP </font></td>";
echo "<td style='color:red'> <font size=4> Content</font></td>";
echo "</tr>";
while ($rs=odbc_fetch_array($res))
{
echo "<tr>";
echo "<td width='130'> {$rs['DateTime']}</td>";
echo "<td width='110'> {$rs['IP']}</td>";
echo "<td width='800'> {$rs['Message']}</td>";
echo "</tr>";
}
echo "</tbale>";
session_stop();
?>
三.压缩成文件下载到本地?
答:此处也没怎么明白.因为,你做个按钮/链接至上面的代码.不就可以保存成excel到本地了..还要做什么压缩呢.
综:回答完毕.希望能帮到你.
10. PHP如何生成临时文件并下载
可以利用post方式提交表单,将文件上传到服务器上即可。上传到服务器的文件会存在临时目录下,然后利用move_uploaded_file函数可以将文件另存到其他目录进行永久保存,如果不另存,请求返回之后该临时文件就会删除,在服务器上再也找不到,如果需要该文件就需要重新上传。 另外,php是服务器端语言,是网页浏览的结果提交到服务器之后,服务器调用php进行处理。浏览器端请使用JavaScript语言处理上传前的操作。另外,由于安全性考虑,JavaScript是不能够读取用户硬盘上的数据的,不然你知道后果,任何一家网站都可以搞到你硬盘上的资料,就没有隐私可言了。 所以呢,还是将文件利用表单提交的方式上传到服务器,服务器端怎么处理,用什么处理都随你,php,python,c++都可以在服务器端处理了,毕竟传到服务器就是服务器的资源了。 页面文件上你可以用input标签浏览选择本地的文件,然后submit就能够上传文件。这是一个基本技术点,请你专门花点时间弄懂吧。