仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1038|回复: 19
打印 上一主题 下一主题

[学习教程] PHP网页设计用PHP3完成文件上载

[复制链接]
愤怒的大鸟 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-2-4 00:04:01 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
算是1个熟悉的过程,所以c语言的基础有就更好,没有也不怕。   

PHP3是一种十分壮大的CGI剧本言语,就其言语特色根基上源于C,就其完成体例而言更象PERL,而其对数据库的内涵撑持更使之成为ASP的壮大敌手。
   
    起首在前台必需有一个界面
   
  < HTML >
  < HEAD >
  < TITLE >文件上载界面< /TITLE >
  < /HEAD >
  < BODY >< TABLE >< CENTER >
  < FORM ENCTYPE = "multipart/form-data" NAME = "SubmitForm"
  ACTION = "upload.php3" METHOD = "POST" >
  < INPUT TYPE = "hidden" NAME =
  "MAX_FILE_SIZE" VALUE ="1000000" >
  < TR >
  < TD >< INPUT NAME = "UploadFile"
  TYPE = "file" SIZE = "30" >< /TD >
  < /TR >
  < TR >
  < TD >< INPUT NAME = "submit" VALUE =
  "提交" TYPE = "submit" >< /TD >
  < TD >< INPUT NAME = "reset" VALUE =
  "重置" TYPE = "reset" >< /TD >
  < /TR >
  < /FORM >< /CENTER >< /TABLE >< /BODY >
  < /HTML >
   
    值得注重的是一个 MAX_FILE_SIZE 的埋没值域,经由过程设置其VALUE 可以限制上载文件的巨细。
    然后在后台完成文件上载操作。假如只是最根基的上载,寥寥几行就能够弄定
   
  < ?
  If($UploadFile != "none")
  {
  copy($UploadFile,"$UploadFile_name");
  unlink($UploadFile);
  }
  else
  {
  echo "你没有选择任何文件上载!";
  }
  ? >
   
    由于form传递过去的值主动赋值给同名变量,所以直接经由过程$UploadFile可以会见上载的文件,但因为这是一个保留文件的变量,因而文件名字必需经由过程别的一个$UploadFile_name变量获得。在拷贝文件后删去一时文件(unlink)。
   
    下面的代码完整可以任务,但实践使用中破绽百出,让咱们慢慢来完美之
   
    起首,上载的文件必需有一个固定的目次保留,咱们在这里用一个$UploadPath 变量保留之,如
   
  $UploadPath = "/home/flier/upload/";
   
  或庞杂一点的主动定位,如
   
  $UploadPath = AddSlashes(dirname
  ($PATH_TRANSLATED))."\\upload\\";
  $PATH_TRANSLATED望文生义是以后传送目次,
   
  咱们假定以其一个名为upload的子目次来保留上载的文件。dirname函数前往其目次名,然后加上子目次名
  然后用一个变量$FileName保留完全的上载后文件名和途径$FileName = $UploadPath.$UploadFile_name;
   
    其次,咱们还想让用户得知上载文件的扼要信息,如上载文件的巨细
  if($UploadFile_size < 1024)
  // 上载文件巨细
  {
  $FileSize = (string)$UploadFile_size . " 字节";
  }
  elseif($UploadFile_size < (1024 * 1024))
  {
  $FileSize = number_format((double)
  ($UploadFile_size / 1024), 1) . " KB";
  }
  else
  {
  $FileSize = number_format((double)
  ($UploadFile_size / (1024 * 1024)), 1) . " MB";
  }
   
    number_format函数起到格局化输入的感化,详细用法请参照手册
   
    下一步咱们必需思索到文件已存在和拷贝操作掉败的情形,并供应响应的提醒信息
   
  if(!file_exists($FileName))
  {
  if(copy($UploadFile,$FileName))
  {
  echo "文件 $UploadFile_name
  ($FileSize)上载胜利!";
  }
  else
  {
  echo "文件 $UploadFile_name 上载掉败!";
  }
  unlink($UploadFile);
  }
  else
  {
  echo "文件 $UploadFile_name 已存在!";
  }
   
    然后咱们应当思索到大文件上载时轻易呈现超时的情形,可以用set_time_limit($TimeLimit); 加大超时限制工夫。
    最初,把截面和完成代码综合到一个独自的文件中,为了完成这个设法,咱们经由过程在 form中添加一个隐含值< INPUT TYPE = "hidden" NAME = "UploadAction" VALUE = "1" > 指出以后的形态(界面或完成),以便辨别看待 完成代码以下(文件名upload.php3)
   
  < ?
  if(!$UploadAction):
  ? >
  < HTML >
  < HEAD >
  < TITLE >文件上载界面< /TITLE >
  < /HEAD >
  < BODY >< TABLE >< CENTER >
  < FORM ENCTYPE = "multipart/form-data" NAME =
  "SubmitForm" ACTION = "upload.php3" METHOD = "POST" >
  < INPUT TYPE = "hidden" NAME =
  "MAX_FILE_SIZE" VALUE ="1000000" >
  < INPUT TYPE = "hidden" NAME = "UploadAction" VALUE = "1" >
  < TR >
  < TD >< INPUT NAME = "UploadFile" TYPE =
  "file" SIZE = "30" >< /TD >
  < /TR >
  < TR >
  < TD >< INPUT NAME = "submit" VALUE =
  "提交" TYPE = "submit" >< /TD >
  < TD >< INPUT NAME = "reset" VALUE =
  "重置" TYPE = "reset" >< /TD >
  < /TR >
  < /FORM >< /CENTER >< /TABLE >< /BODY >
  < /HTML >
  < ?
  else:
  ? >
  < HTML >
  < HEAD >
  < TITLE >文件上载代码< /TITLE >
  < /HEAD >
  < BODY >
  < ?
  $UploadAction=0;
   
  $TimeLimit=60; /* 设置超时限制工夫
  缺省工夫为 30 秒
  设置为0时为不限时 */
  set_time_limit($TimeLimit);
   
  If(($UploadFile != "none")&&
  ($UploadFile != ""))
  {
  $UploadPath = AddSlashes(dirname
  ($PATH_TRANSLATED))."\\upload\\"; // 上载文件寄存途径
  $FileName = $UploadPath.$UploadFile_name;
  // 上载文件名
  if($UploadFile_size < 1024)
  // 上载文件巨细
  {
  $FileSize = (string)$UploadFile_size . " 字节";
  }
  elseif($UploadFile_size < (1024 * 1024))
  {
  $FileSize = number_format((double)
  ($UploadFile_size / 1024), 1) . " KB";
  }
  else
  {
  $FileSize = number_format((double)
  ($UploadFile_size / (1024 * 1024)), 1) . " MB";
  }
   
  if(!file_exists($FileName))
  {
  if(copy($UploadFile,$FileName))
  {
  echo "文件 $UploadFile_name ($FileSize)上载胜利!";
  }
  else
  {
  echo "文件 $UploadFile_name 上载掉败!";
  }
  unlink($UploadFile);
  }
  else
  {
  echo "文件 $UploadFile_name 已存在!";
  }
  }
  else
  {
  echo "你没有选择任何文件上载!";
  }
   
  set_time_limit(30); // 恢复缺省超时设置
  ? >
  < BR >< A HREF = "upload.php3" >前往< /A >
  < /BODY >
  < /HTML >
  < ?
  endif;
  
掌握静态网页的制作技术是学习开发网站的先决条件,这一点就讲到这里,因为这篇文章不是教程文章,也就不对技术进行深入的刨析了。
沙发
发表于 2015-2-4 08:24:15 | 只看该作者
写的比较杂,因为我也是个新手,不当至于大家多多指正。
谁可相欹 该用户已被删除
板凳
发表于 2015-2-9 20:02:29 | 只看该作者
找到的的资料很多都是在论坛里的,需要注册,所以我一般没到一个论坛都注册一个id,所有的id都注册成一样的,这样下次再进来的时候就不用重复注册啦。当然有些论坛的某些资料是需要的付费的。
莫相离 该用户已被删除
地板
发表于 2015-2-9 22:00:08 | 只看该作者
装在C盘下面可以利用windows的ghost功能可以还原回来(顺便当做是重转啦),当然啦我的编译目录要放在别的盘下,不然自己的劳动成果就悲剧啦。
因胸联盟 该用户已被删除
5#
发表于 2015-2-17 06:46:04 | 只看该作者
没接触过框架的人,也不用害怕,其实框架就是一种命名规范及插件,学会一个框架其余的框架都很好上手的。
爱飞 该用户已被删除
6#
发表于 2015-3-1 21:56:48 | 只看该作者
使用 jquery 等js框架的时候,要随时注意浏览器的更新情况,不然很容易发生框架不能使用。
再见西城 该用户已被删除
7#
发表于 2015-3-7 22:38:28 | 只看该作者
我还是强烈建议自己搭建php环境。因为在搭建的过程中你会遇到一些问题,通过搜索或是看php手册解决问题后,你会更加深刻的理解它们的工作原理,了解到php配置文件中的一些选项设置。
不帅 该用户已被删除
8#
发表于 2015-3-15 15:22:37 | 只看该作者
兴趣是最好的老师,百度是最好的词典。
若天明 该用户已被删除
9#
发表于 2015-3-17 16:08:11 | 只看该作者
爱上php,他也会爱上你。
金色的骷髅 该用户已被删除
10#
发表于 2015-3-22 18:29:13 | 只看该作者
学好程序语言,多些才是王道,写两个小时代码的作用绝对超过看一天书,这个我是深有体会(顺便还能练打字速度)。
小魔女 该用户已被删除
11#
发表于 2015-4-15 10:29:03 | 只看该作者
建数据库表的时候,int型要输入长度的,其实是个摆设的输入几位都没影响的,只要大于4就行,囧。
第二个灵魂 该用户已被删除
12#
发表于 2015-4-16 05:21:12 | 只看该作者
对于懒惰的朋友,我推荐php的集成环境xampp或者是wamp。这两个软件安装方便,使用简单。但是我还是强烈建议自己动手搭建开发环境。
只想知道 该用户已被删除
13#
发表于 2015-4-20 08:28:02 | 只看该作者
这些都是最基本最常用功能,我们这些菜鸟在系统学习后,可以先对这些功能深入研究。
柔情似水 该用户已被删除
14#
发表于 2015-4-26 19:36:10 | 只看该作者
我学习了一段时间后,我发现效果并不好(估计是我自身的问题)。因为一个人的精力总是有限的,同时学习这么多,会导致每个的学习时间都得不到保证。
灵魂腐蚀 该用户已被删除
15#
发表于 2015-5-8 00:25:09 | 只看该作者
兴趣是最好的老师,百度是最好的词典。
admin 该用户已被删除
16#
发表于 2015-5-12 12:11:29 | 只看该作者
对于初学者来说不推荐去拿钱买的。当然如果一个网站你经常去用,而且里面的资料也比较有用,最好还是买个会员比较好,毕竟那些也是别人的工作成果。
乐观 该用户已被删除
17#
发表于 2015-6-18 05:52:31 | 只看该作者
作为一个合格的coder 编码的规范是必须,命名方面我推崇“驼峰法”,另外就是自己写的代码最好要带注释,不然时间长了,就算是自己的代码估计看起来都费事,更不用说别人拉。
小女巫 该用户已被删除
18#
发表于 2015-6-18 10:30:17 | 只看该作者
php里的数组为空的时候是不能拿来遍历的;(这个有点低级啊,不过我刚被这个边界问题墨迹了好长一会)
透明 该用户已被删除
19#
发表于 2015-6-20 11:55:29 | 只看该作者
我要在声明一下:我是个菜鸟!!我对php这门优秀的语言也是知之甚少。但是我要在这里说一下php在网站开发中最常用的几个功能:
精灵巫婆 该用户已被删除
20#
发表于 2015-6-26 09:30:59 | 只看该作者
其实也不算什么什么心得,在各位大侠算是小巫见大巫了吧,望大家不要见笑,若其中有错误的地方请各位大虾斧正。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-6-17 15:17

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表