php文件上传与下载

WBOY
发布: 2016-06-23 13:38:15
原创
847 人浏览过

php文件上传可以用move_uploaded_file()函数 
但是文档没有介绍文件下载的方法 我也找不到 move_downloaded_file()函数
我想下载用move_uploaded_file() 让它从你上传的目录传到你指定的下载目录,这样感觉怪怪的.
哪位大哥分享下php文件下载的方法.


回复讨论(解决方案)

上传可以move_uploaded_file, 是因为上传的文件已经在服务器上
下载自然不能move_uploaded_file,因为文件是在服务器上的,你下载是要下载到客户端的。。。
最简单的方式下载
如果不想暴露文件地址。
可以用:
header("xxxxxxxxxx");
readfile("文件");
将文件内容吐给浏览器去下载。

下载的资料,google, baidu 一下,还是蛮多的。。

上传可以move_uploaded_file, 是因为上传的文件已经在服务器上
下载自然不能move_uploaded_file,因为文件是在服务器上的,你下载是要下载到客户端的。。。
最简单的方式下载
如果不想暴露文件地址。
可以用:
header("xxxxxxxxxx");
readfile("文件");
将文件内容吐给浏览器去下载。

下载的资料,google, baidu 一下,还是蛮多的。。



header("xxxxxxxxxx");这句的作用是干什么的?
如果单单readfile("文件"); 浏览不会弹出下载框,只显示文件里的内容

<?php  $file = 'test.zip';  $filename = '中文.zip';    if(file_exists($file)){      $user_agent = $_SERVER['Http_User_agent'];      $encode_filename = rawurlencode($filename);        if(preg_match("/MSIE/", $user_agent)){          header('content-disposition:attachment; filename="'.$encode_filename.'"');      }else if(preg_match("/Firefox/", $user_agent)){          header("content-disposition:attachment; filename*=\"utf8''".$filename.'"');      }else{          header('content-disposition:attachment; filename="'.$filename.'"');      }      readfile($file);  }  ?> 
登录后复制
登录后复制
登录后复制


下载。

<?php  $file = 'test.zip';  $filename = '中文.zip';    if(file_exists($file)){      $user_agent = $_SERVER['Http_User_agent'];      $encode_filename = rawurlencode($filename);        if(preg_match("/MSIE/", $user_agent)){          header('content-disposition:attachment; filename="'.$encode_filename.'"');      }else if(preg_match("/Firefox/", $user_agent)){          header("content-disposition:attachment; filename*=\"utf8''".$filename.'"');      }else{          header('content-disposition:attachment; filename="'.$filename.'"');      }      readfile($file);  }  ?> 
登录后复制
登录后复制
登录后复制


下载。




下载文件的时候为什么要判断是那种浏览器(preg_match("/Firefox/", $user_agent)?
header('content-disposition:attachment; filename="'.$encode_filename.'"');
header('xxx')这句是有什么用,我去掉的时候readfile($file) 就把文件的内容显示在浏览器,也没有弹出下载框


<?php  $file = 'test.zip';  $filename = '中文.zip';    if(file_exists($file)){      $user_agent = $_SERVER['Http_User_agent'];      $encode_filename = rawurlencode($filename);        if(preg_match("/MSIE/", $user_agent)){          header('content-disposition:attachment; filename="'.$encode_filename.'"');      }else if(preg_match("/Firefox/", $user_agent)){          header("content-disposition:attachment; filename*=\"utf8''".$filename.'"');      }else{          header('content-disposition:attachment; filename="'.$filename.'"');      }      readfile($file);  }  ?> 
登录后复制
登录后复制
登录后复制


下载。




下载文件的时候为什么要判断是那种浏览器(preg_match("/Firefox/", $user_agent)?
 header('content-disposition:attachment; filename="'.$encode_filename.'"');  
header('xxx')这句是有什么用,我去掉的时候readfile($file) 就把文件的内容显示在浏览器,也没有弹出下载框

设置文件头,当浏览器接收到头时,会激活文件下载对话框
相关标签:
来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!