仓酷云

标题: PHP网页编程之PHP完成文件下载 [打印本页]

作者: 飘飘悠悠    时间: 2015-2-4 00:31
标题: PHP网页编程之PHP完成文件下载
从刚开始练习的PHP基础语法练习,到PHP语言在WEB中的应用,再到实际的项目开发,如留言版,相册系统,中小型公司网站系统,以及期间做过的有关团队合作的小游戏,让我受益匪浅,学到了很多。下载   你必定会笑我“下载文件”如斯复杂都值得说?固然并非想你想象的那末复杂。例如你但愿客户要填完一份表格,才可以下载某一文件,你第一个设法必定是用 “Redirect”的办法,先反省表格是不是已填写终了和完全,然后就将网址指到该文件,如许客户才干下载,例如笔者编写的以下代码:

<?
// 反省 FORM 是不是全体填写终了...
if ($form_completed) {
Header("Location: http://www.myweb.com/download/info_check.exe");
exit;
}
?>

或是以下的情形:

“ <a href="http://www.yourwebl.com/users/download.php?id=124524">入手下手下载文件</a> ”

这里使用了ID体例吸收要下载文件的编号,然后用“Redirect”的体例毗连到实践的网址。

假如你想做一个关于“网上购物”的电子商务网站,思索平安成绩,你不想用户直接复制网址下载该文件,笔者建议你利用PHP直接读取该实践文件然后下载的办法去做。法式以下:

<?
$file_name = "info_check.exe";
$file_dir = "/public/www/download/";
if (!file_exists($file_dir . $file_name)) { //反省文件是不是存在
echo "文件找不到";
exit;
} else {
$file = fopen($file_dir . $file_name,"r"); // 翻开文件
// 输出文件标签
Header("Content-type: application/octet-stream");
Header("Accept-Ranges: bytes");
Header("Accept-Length: ".filesize($file_dir . $file_name));
Header("Content-Disposition: attachment; filename=" . $file_name);
// 输入文件内容
echo fread($file,filesize($file_dir . $file_name));
fclose($file);
exit;}
?>

而假如文件途径是“http”或“ftp” 网址的话,则源代码会有少量改动,法式以下:

<?
$file_name = "info_check.exe";
$file_dir = "http://www.easycn.net/";
$file = @ fopen($file_dir . $file_name,"r");
if (!$file) {
echo "文件找不到";
} else {
Header("Content-type: application/octet-stream");
Header("Content-Disposition: attachment; filename=" . $file_name);
while (!feof ($file)) {
echo fread($file,50000);
}
fclose ($file);
}
?>

如许就能够用PHP直接输入文件了。   会HTML吗?会,我能编好几个大表格排板的网页啦!
作者: 乐观    时间: 2015-2-4 13:17
如果你可以写完像留言板这样的程序,那么你可以去一些别人的代码了,
作者: 冷月葬花魂    时间: 2015-2-9 22:03
遇到出错的时候,我经常把错误信息直接复制到 google的搜索栏,一般情况都是能搜到结果的,不过有时候会搜出来一大片英文的出来,这时候就得过滤一下,吧中文的弄出来,挨着式方法。
作者: 第二个灵魂    时间: 2015-2-27 23:26
我还是强烈建议自己搭建php环境。因为在搭建的过程中你会遇到一些问题,通过搜索或是看php手册解决问题后,你会更加深刻的理解它们的工作原理,了解到php配置文件中的一些选项设置。
作者: 小妖女    时间: 2015-3-1 21:19
开发工具也会慢慢的更专业,每个公司的可能不一样,但是zend studio是个大伙都会用的。
作者: 灵魂腐蚀    时间: 2015-3-5 03:09
其实没啥难的,多练习,练习写程序,真正的实践比看100遍都有用。不过要熟悉引擎
作者: 爱飞    时间: 2015-3-8 06:17
有位前辈曾经跟我说过,phper 至少要掌握200个函数 编起程序来才能顺畅点,那些不熟悉的函数记不住也要一拿手册就能找到。所以建议新手们没事就看看php的手册(至少array函数和string函数是要记牢的)。
作者: 若天明    时间: 2015-3-11 16:17
要进行开发,搭建环境是首先需要做的事,windows下面我习惯把环境那个安装在C盘下面,因为我配的环境经常出现诡异事件,什么事都没做环境有的时候就不能用啦。
作者: 分手快乐    时间: 2015-3-16 23:05
使用zendstdio 写代码的的时候,把tab 的缩进设置成4个空格是很有必要的
作者: 深爱那片海    时间: 2015-3-18 14:26
写的比较杂,因为我也是个新手,不当至于大家多多指正。
作者: 再见西城    时间: 2015-3-22 02:08
我还是推荐用firefox ,配上firebug 插件调试js能省下不受时间。谷歌的浏览器最好也不少用,因为谷歌的大侠们实在是太天才啦,把一些原来的js代码加了一些特效。
作者: 活着的死人    时间: 2015-3-22 22:11
其实也不算什么什么心得,在各位大侠算是小巫见大巫了吧,望大家不要见笑,若其中有错误的地方请各位大虾斧正。
作者: 飘飘悠悠    时间: 2015-3-25 07:30
这些都是最基本最常用功能,我们这些菜鸟在系统学习后,可以先对这些功能深入研究。
作者: 透明    时间: 2015-4-21 14:25
说php的话,首先得提一下数组,开始的时候我是最烦数组的,总是被弄的晕头转向,不过后来呢,我觉得数组里php里最强大的存储方法,所以建议新手们要学好数组。
作者: 柔情似水    时间: 2015-4-22 05:12
多看优秀程序员编写的代码,仔细理解他们解决问题的方法,对自身有很大的帮助。
作者: admin    时间: 2015-4-26 16:10
说php的话,首先得提一下数组,开始的时候我是最烦数组的,总是被弄的晕头转向,不过后来呢,我觉得数组里php里最强大的存储方法,所以建议新手们要学好数组。
作者: 只想知道    时间: 2015-4-26 22:11
使用zendstdio 写代码的的时候,把tab 的缩进设置成4个空格是很有必要的
作者: 愤怒的大鸟    时间: 2015-4-27 09:06
Apache不是非得用80或者8080端口的,我刚开始安得时候就是80端口老占用,就用了个 81端口,结果照常,就是输localhost的时候,应该输入为 localhost:81
作者: 老尸    时间: 2015-5-10 01:04
我还是强烈建议自己搭建php环境。因为在搭建的过程中你会遇到一些问题,通过搜索或是看php手册解决问题后,你会更加深刻的理解它们的工作原理,了解到php配置文件中的一些选项设置。




欢迎光临 仓酷云 (http://ckuyun.com/) Powered by Discuz! X3.2