All articles| All Pictures| All Softwares| All Video| Go home page| Write articles| Upload pictures

Reading number is top 10 articles
SQL,Server,索引结构及其使用(四)_[SQL,Server教程]
如何无需编程便将数据SQL导出到MYSQL_[SQL,Server教程]
AJAX在VS2005中的简单应用_[Asp.Net教程]
扩展ASP.NET,2.0内置GridView控件之一_.net资料_编程技术
Visual,Studio,2008,Service,Pack,1,-,BETA,发布_[Asp.Net教程]
ASP.NET,2.0下的条件编译_[Asp.Net教程]
C#中加强ListView控件的功能_[Asp.Net教程]
过滤ASP.NET输出HTML中的无用空格_[Asp.Net教程]
SQL循序渐进(15)IN,和,BETWEEN,条件运算符_[SQL,Server教程]
Visual,Studio,2005集成开发环境图解(二)_[Asp.Net教程]
Reading number is top 10 pictures
囚犯暴乱了咋办?
真正的国产-非模拍 贵在是真实2
HongMenYan premiere XinLiangGong clairvoyant outfit PK YiFeiLiu2
迷人的靓女
Exquisite decoration is not paying too much4
乳娘帕梅拉安德森1
Chinese paper-cut grilles art appreciation1
刘亦菲写真集2
The wise woman of chest1
Athena chu perspective cheongsam shine with New York
Download software ranking
软件工程思想
Boxer vs Yellow4
双旗镇刀客B
Unix video tutorial11
传奇私服架设教程
超级战舰
Boxer Classic video1
Kung.Fu.Panda.2
Ashlynn Video4
虚拟机5.5.3版
aaa published in(发表于) 2013/12/21 22:40:59 Edit(编辑)
用PHP实现文件上传_php资料_编程技术

用PHP实现文件上传_php资料_编程技术

用PHP实现文件上传_php资料_编程技术-你的首页-uuhomepage.com

  在WebDev站点上经常看到的一个问题是关于文件上传的。在这篇文章里我将解释如何用PHP实现文件上传。

  设计上传表格

  我们主要的目标是完成文件从本地计算机上传到服务器上去。为了做到这一点,我们需要做一个表格,允许用户选择一个文件并可以提交它。下面是一个例子:



文件上传表格






选择上传文件




  注意表格中的ENCTYPE="multipart/form-data"部分。这个一定不能错,否则服务器将不知道你在上传文件。

  设计上传程序

  现在我们已经完成了前台部分,让我们再仔细地考虑后台是如何接收文件并保存它到我们指定的目录下去。下面就开始用PHP了。这是submit.php3的程序:

If($MyFile != "none") {
copy($MyFile,"/home/berber/$MyFile_name");
unlink($MyFile);
}
else {
echo"你没有上传任何文?;
}
?>

  不管你信不信,这就是整个处理过程。我们在程序中所做的就是:

  1. 检查是否一个文件已经上传到服务器,通过If($MyFile != "none");
  2. 拷贝文件到指定位置。
  3. 删除临时文件。

  当你按下了提交按钮后,文件将会从你的计算机上传到服务器的临时目录下。在临时目录下的文件名为一个临时文件。应该使用file字段的name值来访问它,在这里为$MyFile。真正的文件名使用file字段的name值加上"_name"来访问它,在这里为$MyFile_name。使用copy()函数,将临时文件$MyFile拷贝到指定目录下,拷贝后的文件名为$MyFile_name。完成后不要忘了删除临时文件,不然你会有许多你不想要的文件。

  设置文件名

  一个可能让程序员睡不着觉的事情就是试图改变file字段的VALUE属性的值。并不是很多人知道它是不可能的。尽管W3C说可以,但实际上,象IE和Netscape都不允许设置VAUE属性的值。听上去有点可笑,为什么我不能设置一个初始值,这样让用户使用起来更方便呢?如果你那样做,那你就会发现你带来了一个安全上的漏洞。可以设想一下,你登录到我的网站,我可以改变一个表格中的file字段的值。那么有许能阻止我把你的/etc/passwd文件上传呢?更进一步的,我不需要你按下提交按钮,我可先设置file字段的值,然后通过一段javascript程序来模拟提交动作...哇呜...我可以处理你机器上的任何文件了。因为这个原因,浏览器简单地把标记中的file字段的VALUE字段给忽略了。

  限制文件大小

  另一个酷的特性是限制上传文件的大小选项。只要增加一个标记就可以了:



  这个将不允许用户上传超过100KB的文件。

  显示文件大小

  为了显示文件大小,可以通过file字段name属性值加上"_size"这个变量来访问。在我们的例子中就是使用$MyFile_size。所以,如果你想告诉用户上传文件的大小,你可以象下面那样去做:

echo "You have just uploaded $MyFile_name";
echo "The size of the file is $MyFile_size";

  权限

  很明显你需要对目标目录的写的权限。如果一个用户用匿文上传文件,那他的用户名应该是
"bobody"。这个用户必须有对目标目录写的权限否则你可能得到一个象下面的信息:

Warning: Unable to create '/home/berber/berber.txt':
Permission denied
in /home/berber/submit.php3 on line 5




添加到del.icio.us 添加到新浪ViVi 添加到百度搜藏 添加到POCO网摘 添加到天天网摘365Key 添加到和讯网摘 添加到天极网摘 添加到黑米书签 添加到QQ书签 添加到雅虎收藏 添加到奇客发现 diigo it 添加到饭否 添加到飞豆订阅 添加到抓虾收藏 添加到鲜果订阅 digg it 貼到funP 添加到有道阅读 Live Favorites 添加到Newsvine 打印本页 用Email发送本页 在Facebook上分享


Disclaimer Privacy Policy About us Site Map

If you have any requirements, please contact webmaster。(如果有什么要求,请联系站长)
Copyright ©2011-
uuhomepage.com, Inc. All rights reserved.