Home > Backend Development > PHP Tutorial > php文件上传与下载

php文件上传与下载

WBOY
Release: 2016-06-23 13:38:15
Original
887 people have browsed it

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);  }  ?> 
Copy after login
Copy after login
Copy after login


下载。

<?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);  }  ?> 
Copy after login
Copy after login
Copy after login


下载。




下载文件的时候为什么要判断是那种浏览器(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);  }  ?> 
Copy after login
Copy after login
Copy after login


下载。




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

设置文件头,当浏览器接收到头时,会激活文件下载对话框
Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template