教你使文件PHP上传生效

开发 后端
PHP是一种源代码开放程序,拥有很好的跨平台兼容性,是受大家喜爱的一门开发语言,文章这里就PHP上传的问题做出了详细的介绍。

PHP经过长时间的发展,很多用户都很了解PHP了,这里我发表一下个人理解,和大家讨论讨论。PHP是一种用于创建动态WEB页面的服务端脚本语言。如同ASP 和ColdFusion,用户可以混合使用PHP和HTML编写WEB页面,当访问者浏览到该页面时,服务端会首先对页面中的PHP命令进行处理,然后把处理后的结果连同HTML内容一起传送到访问端的浏览器。

#T#但是与ASP或ColdFusion不同,PHP是一种源代码开放程序,拥有很好的跨平台兼容性。用户可以在Windows NT系统以及许多版本的Unix系统上运行PHP,而且可以将PHP作为Apache服务器的内置模块或CGI程序运行。除了能够精确的控制WEB页面的显示内容之外,用户还可以通过使用PHP发送HTTP报头。用户可以通过PHP设置cookies,管理用户身份识别,并对用户浏览页面进行重定向。PHP具有非常强大的数据库支持功能,能够访问几乎目前所有较为流行的数据库系统。此外,PHP可以与多个外接库集成,为用户提供更多的实用功能,如生成PDF文件等。

用户可以直接在WEB页面中输入PHP命令代码,因而不需要任何特殊的开发环境。在WEB页面中,所有PHP代码都被放置在“”中。此外,用户还可以选择使用诸如 等的形式。PHP引擎会自动识别并处理页面中所有位于PHP定界符之间的代码。

PHP脚本语言的语法结构与C语言和Perl语言的语法风格非常相似。用户在使用变量前不需要对变量进行声明。使用PHP创建数组的过程也非常简单。PHP还具有基本的面向对象组件功能,可以极大的方便用户有效组织和封装自己编写的代码。这里给大家介绍一下关于PHP上传的问题。

例子1. 使文件PHP上传生效

请查阅函数 is_uploaded_file() 和 move_uploaded_file() 以获取进一步的信息。以下范例处理由表单提供的文件上传。

  1. <?php 
  2. // In PHP versions earlier than 4.1.0, $HTTP_POST_FILES should be used instead  
  3. // of $_FILES.  
  4.  
  5. $uploaddir = '/var/www/uploads/';  
  6. $uploadfile = $uploaddir . basename($_FILES['userfile']['name']);  
  7.  
  8. echo '<pre>';  
  9. if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) {  
  10.    echo "File is valid, and was successfully uploaded.\n";  
  11. } else {  
  12.    echo "Possible file upload attack!\n";  
  13. }  
  14.  
  15. echo 'Here is some more debugging info:';  
  16. print_r($_FILES);  
  17.  
  18. print "</pre>";  
  19.  
  20. ?> 

接受PHP上传文件的脚本为了决定接下来要对该文件进行哪些操作,应该实现任何逻辑上必要的检查。例如可以用 $_FILES['userfile']['size'] 变量来排除过大或过小的文件,也可以通过 $_FILES['userfile']['type'] 变量来排除文件类型和某种标准不相符合的文件,但只把这个当作一系列检查中的***步,因为此值完全由客户端控制而在 PHP 端并不检查。自 PHP 4.2.0 起,还可以通过 $_FILES['userfile']['error'] 变量来根据不同的错误代码来计划下一步如何处理。不管怎样,要么将该文件从临时目录中删除,要么将其移动到其它的地方。

如果表单中没有选择上传的文件,则 PHP 变量 $_FILES['userfile']['size'] 的值将为 0,$_FILES['userfile']['tmp_name'] 将为空。如果该文件没有被移动到其它地方也没有被改名,则该文件将在表单请求结束时被删除。

责任编辑:田树 来源: 博客
相关推荐

2009-11-16 13:27:20

PHP上传多张图片

2009-12-07 12:56:40

PHP文件管理

2009-11-16 10:40:02

PHP上传文件代码

2009-11-16 10:49:43

PHP上传文件代码

2009-11-16 11:41:19

PHP上传大文件

2009-11-24 09:23:14

生成PHP类文件

2009-11-16 14:38:36

PHP上传文件代码

2009-11-17 17:17:50

PHP上传多个文件

2009-11-16 10:16:24

PHP文件上传

2009-11-09 14:57:37

WCF上传文件

2009-11-16 10:25:40

PHP上传文件

2009-11-24 13:15:35

Zend框架PHP上传文件

2009-11-16 09:26:35

PHP上传

2009-07-03 17:15:31

jsp上传文件

2009-11-24 15:01:59

PHP通用文件上传类

2012-04-12 16:05:50

2009-11-16 10:57:51

PHP上传文件代码

2009-11-16 12:17:46

PHP上传文件类型

2009-05-18 10:23:43

文件上传PHPFILE函数

2009-11-16 14:27:45

PHP上传文件进度
点赞
收藏

51CTO技术栈公众号