请教文件下载的问题 $file_path = $file_dir.'/'.$file_name; //要下载的文件路径、名 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 $source_file_name="put.rar"; //下载的源文件名$save_file_name="get.rar"; //保存为的文件名$file_path="UploadFiles/"; //源文件名的路径$file_type=substr( strrchr( $source_file_name, "." ), 1 ); //取得文件类型,也就是后缀$file_size=filesize($file_path.$save_file_name); //取得文件大小Header("Content-type: application/x-".$file_type); //文件类型Header("Accept-Ranges: bytes"); //二进制传输方式Header("Accept-Length: ".$file_size); //文件大小header("Content-Description: PHP3 Generated Data"); Header("Content-Disposition: attachment; filename=".$save_file_name); //保存为的文件名readfile(ROOT_PATH.'UploadFiles/'.$save_file_name]); //开始传输//你的情况是$save_file_name没有设好,//还要注意,在执行下载前,不可以有任何的输出,就是echo之类的语句,因为所有的输出都会加到下//载文件中,而不会在浏览器中显示,所以你的下载的东西多了不该要东西,就是这个原因,//我这边有一个现成的例子,自己写的,要的话给我邮箱 程序是没有问题,$file_path也就是文件名和路径比如下载/tmp/1.dat文件,$file_pathe="/tmp/1.dat", 现在问题就是在流输出过程中,因为调用了echo。所以,下载的文件中出现了像<br>之类的html语言,还有头也是html语言,比如增加了:<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd"><LINK href='../../images/style_new.css' type=text/css rel=stylesheet><BODY leftMargin=0 topMargin=0 background='../../images/back_new.gif' ><table style="BACKGROUND-REPEAT: repeat-x" cellSpacing=0 cellPadding=0 width=785align=left bgColor=#ffffff background="../../images/back_new2.gif" border=0> <tr> <td align=center valign=middle height=435>这些东西,文件尾也是。我应该怎么解决,高手快点指导啊! 如果在下载中一定要用到echo的话,建议尝试用框架解决, 谢谢楼上的,我已经解决了下载文件中多余字节的问题,就像你所说的那样执行下载前和执行下载后有了echo语句,现在又有个新问题,就是我调用了上面我所说的函数download()可以下载成功,但是我想在下载完毕后自动跳转到一个新的链接,代码是:download($file_path, $source_name, $file_name);header("Location:dumpsucceed.php");但是发现它不再执行下载,而直接跳转到dumpsucceed.php上,把header()这行屏蔽掉后,可以成功的下载,是什么原因, 谢谢! 谢谢, tovy(紫云) 的方法确实不错,可以解决刷新的问题。不知还有没有其他更好的方法。 新手,关于一个获取ip函数不是很理解. php搜索功能 求一正则表达式,据说题目要长.。。。。。 时间差的问题 php 数据赋值到array PHP有函数来获得HTML页面之间某两个标记之间的那部分么? mysql查询语句有误? mysql不能启动!!!! <input type=button ...> 能不能設置這個東西的長度啊??? 求只请求一次数据库生成树 给HOTMAIL发送邮件的问题 请问有什么办法可以知道一个数组里有什么数据,或者把数组里的数据全部打印出来?
$save_file_name="get.rar"; //保存为的文件名
$file_path="UploadFiles/"; //源文件名的路径
$file_type=substr( strrchr( $source_file_name, "." ), 1 ); //取得文件类型,也就是后缀
$file_size=filesize($file_path.$save_file_name); //取得文件大小
Header("Content-type: application/x-".$file_type); //文件类型
Header("Accept-Ranges: bytes"); //二进制传输方式
Header("Accept-Length: ".$file_size); //文件大小
header("Content-Description: PHP3 Generated Data"); Header("Content-Disposition: attachment; filename=".$save_file_name); //保存为的文件名
readfile(ROOT_PATH.'UploadFiles/'.$save_file_name]); //开始传输
//你的情况是$save_file_name没有设好,
//还要注意,在执行下载前,不可以有任何的输出,就是echo之类的语句,因为所有的输出都会加到下
//载文件中,而不会在浏览器中显示,所以你的下载的东西多了不该要东西,就是这个原因,//我这边有一个现成的例子,自己写的,要的话给我邮箱
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd"><LINK href='../../images/style_new.css' type=text/css rel=stylesheet><BODY leftMargin=0 topMargin=0 background='../../images/back_new.gif' ><table style="BACKGROUND-REPEAT: repeat-x" cellSpacing=0 cellPadding=0 width=785align=left bgColor=#ffffff background="../../images/back_new2.gif" border=0> <tr> <td align=center valign=middle height=435>
这些东西,文件尾也是。我应该怎么解决,高手快点指导啊!
download($file_path, $source_name, $file_name);
header("Location:dumpsucceed.php");
但是发现它不再执行下载,而直接跳转到dumpsucceed.php上,把header()这行屏蔽掉后,可以成功的下载,是什么原因,
谢谢!