PHP学习笔记(十二):$_FILES超级全局变量(借助网上社区项目的上传图片功能进行介绍)

原创 2015年07月07日 16:35:06

一、这个变量是一个二维数组,用来保存通过 HTTP POST 方式上传到当前脚本的项目的内容

eg:

<?php
	echo $_FILES['imageaddress']['name'];//显示表单上传的文件名字,其中imageadress是表单中input元素的name
?>
具体实现需要两个php文件,一个表单输入文件form.php,一个上传提交文件form_submit.php

(1)form.php代码:

  <?php
  header('content-type:text/html;charset=utf-8');
  ?>
 <!--
 	作者:1121263265@qq.com
 	时间:2015-07-07
 	描述:通过表单上传文件,点击提交,页面跳转到form_submit.php,那边再调用$_FILES变量,可以查看上传的文件信息
 --> 
<form enctype="multipart/form-data" action="form_submit.php" method="post">
 <input name="imageadress" type="file">
 <input type="submit" value="上传文件">
</form>
(2)form_submit.php代码:

	//下面是完整的上传过程
	if(is_dir("./bccdimages")==false){			//判断指定的文件是否存在
		mkdir("./bccdimages");					//如果不存在,则创建一个新的文件夹
	} 
	$link=date("YmjHis");						//获取当前时间
	//为表单中提交的数据重新命名,以当前时间和随机数作为名称,其中使用$_FILES获取表单中真实的名称,使用strstr函数获取文件的后缀
	$path=$link.mt_rand(1000000,9999999).strstr($_FILES["imageaddress"]["name"],".");
	$address="./bccdimages/".$path;				//定义文件上传的路径
	move_uploaded_file($_FILES["imageaddress"]["tmp_name"],$address);		//将文件上传到指定的文件中
	$imageaddress="./admin/bccdimages/".$path;								//获取上传文件在服务器中的存储路径
	//将表单中提交的数据存储到数据库中
	$query=mysql_query("insert into tb_bccd(bccdname,owner,typeid,content,samepart,imageaddress,addtime) values('$bccdname','$owner','$typeid','$content','$samepart','$imageaddress','$addtime')",$conn);
	if($query==true){ 
		echo "<script>alert('编程词典添加成功!');history.back();</script>";
	}else{
		echo "<script>alert('编程词典添加失败!');history.back();</script>";
	}

?>
  
二、下面是$_FILES参数的详细介绍:

原文地址:http://www.php100.com/html/php/hanshu/2013/0905/4666.html

$_FILES超级全局变量很特殊,他是预定义超级全局数组中唯一的二维数组。其作用是存储各种与上传文件有关的信息,这些信息对于通过PHP脚本上传到服务器的文件至关重要。此函数中总共有5项:
1.$_FILES["userfile"]["error"]
$_FILES["userfile"]["error"]数组值提供了与上传尝试结果有关的重要信息。总共有5个不同的返回值,其中一个表示成功的结果,另外4个表示在尝试中出现的特殊错误。灭个返回值的名字和将在后面介绍。
2.$_FILES["userfile"]["name"]
$_FILES["userfile"]["name"]变量指定客户端机器上声明的文件最初的名字,包括扩展名。因此,如果浏览器一个名为vacation.jpg的文件,并通过表单上传,则此变量的值将是vacation.png。
3.$_FILES["userfile"]["size"]
$_FILES["userfile"]["size"]变量指定从客户端上传的文件的大小,以字节为单位。因此,在vacation.jpg文件的例子中,此函数可能赋值为5253,大约为5kb.
4. $_FILES["userfile"]["tmp_name"]
$_FILES["userfile"]["tmp_name"]变量指定上传到服务器后为文件赋予的临时名。这是存储在临时目录(由PHP指令upload_tmp_dir指定)中时所指定的文件名。
5. $_FILES["userfile"]["type"]
$_FILES["userfile"]["type"]变量指定从客户端上传的文件的mime类型。因此,在vacation.jpg文件的例子中,此变量会赋值为image/jpeg。如果上传的是PDF,则赋值为application/pdf。因为这个变量有时会得到意外的结果,所以应当在脚本中显示地进行验证。


$_FILES['myFile']['error']   和该文件上传相关的错误代码。['error'] 是在 PHP 4.2.0 版本中增加的。下面是它的说明:(它们在PHP3.0以后成了常量)
UPLOAD_ERR_OK
值:0; 没有错误发生,文件上传成功。
UPLOAD_ERR_INI_SIZE
值:1; 上传的文件超过了 php.ini 中 upload_max_filesize 选项限制的值。
UPLOAD_ERR_FORM_SIZE
值:2; 上传文件的大小超过了 HTML 表单中 MAX_FILE_SIZE 选项指定的值。
UPLOAD_ERR_PARTIAL
值:3; 文件只有部分被上传。
UPLOAD_ERR_NO_FILE
值:4; 没有文件被上传。
值:5; 上传文件大小为0.






版权声明:本文为博主原创文章,未经博主允许不得转载。

PHP学习笔记(十一):网上社区项目的知识点总结

1、js中的with: 用于修改标签的属性,eg with(name) {       style.width=100; } 以上就是修改ID为name的标签的width为100 2、一些html的知...
  • Jalon2015
  • Jalon2015
  • 2015年07月07日 16:15
  • 657

PHP初学之超全局变量

超全局变量 变量分三种;1、全局变量(普通全局变量),函数外定义的变量,在函数里不可以调用    2、局部变量,函数里定义的变量,在函数里可以使用,在函数外不可以    3、超全局变量,...
  • li419360214
  • li419360214
  • 2016年02月24日 09:51
  • 834

PHP学习笔记(07)——(超级全局变量及常量)

超级全局变量,常量
  • u014630801
  • u014630801
  • 2015年10月13日 16:11
  • 211

PHP文件的上传下载中,全局变量$_FILES的作用及解析

PHP文件的上传下载中,全局变量$_FILES的作用及解析array(1) { [“file”]=> array(5) { [“name”]=> string(11) “header1.jpg” [“...
  • qq_26291823
  • qq_26291823
  • 2016年01月17日 23:51
  • 991

Java项目——简单的WebServer(二)

上一篇说了一些必要的知识,下面就开始写我们的项目1. ServerMain.java存放main函数,调用各种方法package cob.briup.webServer.v2_1.main;impor...
  • Luciferooorz
  • Luciferooorz
  • 2017年08月27日 15:34
  • 133

一个电商项目的功能模块梳理

电商项目核心玩法:定制商品+供应链(商品辅料库)+网红社区最近做项目,功能越来越多,想清晰地理解项目,有点累了。今天抽空,把这个项目的核心功能模块简要总结下,顺便画了个图。一、全局功能模块图二、简要介...
  • FansUnion
  • FansUnion
  • 2016年07月07日 18:28
  • 7120

PHP 常量、PHP 变量全解析(超全局变量、变量的8种数据类型等)

常量特点 ==常量一旦被定义就无法更改或撤销定义。== 常量名不需要开头的$ 与变量不同,常量贯穿整个脚本是自动全局的。==作用域不影响对常量的访问== 常量值只能是字符串或数字 设置 PHP 常量如...
  • QQ80583600
  • QQ80583600
  • 2017年05月05日 14:01
  • 731

PHP上传图片功能

表单 admin_upfile.php 
  • dongsg11200
  • dongsg11200
  • 2012年11月08日 11:52
  • 2302

WMS介绍

Oracle EBS WMS功能介绍(二) (版权声明,本人原创或者翻译的文章如需转载,如转载用于个人学习,请注明出处;否则请与本人联系,违者必究) 出货物流逻辑主要包括 1.      打...
  • aoweinian
  • aoweinian
  • 2015年08月25日 14:15
  • 493

项目简单介绍

项目背景介绍:   大数据管理系统,主要对开源hadoop大数据组件(后续加入了自研组件,包括odpp,统一sql,vmax等)管理,包括集群安装,卸载,启动停止,状态监控,指标监控,容灾备份,告...
  • jsyxcjw
  • jsyxcjw
  • 2016年08月03日 22:04
  • 705
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:PHP学习笔记(十二):$_FILES超级全局变量(借助网上社区项目的上传图片功能进行介绍)
举报原因:
原因补充:

(最多只允许输入30个字)