两种方式解决下载问题:
方法一:使用a标签实现
将一个文件通过a标签的href进行链接:当用户点击的时候,浏览器不能识别该文件,就会变成下载。
A标签下载的问题
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>文件下载</title> </head> <body> <a href=‘a.rar‘>download</a> </body> </html>
方法二:php下载
Php本身没有能力实现下载:只有输出功能,将文件读取到内存,然后输出给浏览器。
PHP能够修改http协议:可以通过http协议告诉浏览器,当前内容不要直接打开,应该以附件的形式保存。
1.告诉浏览器:当前数据是二进制流,不要打开
header("Content-type: application/octet-stream")
2.告诉浏览器:应当以附件保存,还给出另存为的名字
3.header("Content-Disposition: attachment; filename=目标名字" )
Php直接输出内容即可:echo file_get_contents
<?php //PHP实现文件下载 $file_name = "a.rar"; //告诉浏览器:不要解析数据 header("Content-type:application/octet-stream"); //告诉浏览器:当做附件处理,给出建议名字 header("Content-Disposition:attachment;filename=".$file_name); //输出数据 readfile($file_name); //echo file_get_contents(‘test.txt‘);
原文:http://www.cnblogs.com/lesuso/p/4854667.html