PHP文件上传主要代码讲解


Posted in PHP onSeptember 30, 2013
<?php   
 if($_FILES['myfile']['name'] != '') {   
if($_FILES['myfile']['error'] > 0) {   
echo "错误状态:" . $_FILES['myfile']['error'];   
} else {   
move_uploaded_file($_FILES['myfile']['tmp_name'] , "uploads/" . $FILES['myfile']['name']);   
echo "<script>alert(上传成功!);</script>";   
}   
} else{   
echo "<script>alert(请上传文件!);</script>";   
}   
?>

说明:

在解释这篇代码前,我们有必要了解以下知识。

$_FILES['myfile']['name'] 是指被上传文件的名称
$_FILES['myfile']['type'] 是指被上传文件的类型
$_FILES['myfile']['size'] 是指被上传文件的大小,单位为字节(B)
$_FILES['myfile']['tmp_name'] 是指被上传文件存在服务器中的临时副本文件名称,文件被移动到指定目录后临文件将被自动消毁。
$_FILES['myfile']["error"] 是指由文件上传中有可能出现的错误的状态码,关于各状态含义后在会说明。

了解了这些,我们再来看一下upload.php的代码。

首先,$_FILES['myfile']['name']中的myfile是指在上面HTML页面中上传文件标签的name值,根据这个我们才能知道我们正在处理的文件是哪一个input提交过来的。

然后再来判断一下 $_FILES['myfile']['name'] 不是否为空,根据这个我们可以知道用户有没有上传文件,从而执行不同的操作。

如果上传了文件并且状态是0就说明上传成功,我们就可以用 move_uploaded_file方法把上传的文件存放到指定目录,上面这个例子是指把上传的文件移动到同目录下的uploads文件夹下,这个路径是相对于这个PHP文件(既upload.php)的相对目录。

比如,我们想把上传的文件移动到upload.php上一层叫user的文件夹中的话,我们就可以这样写:move_uploaded_file($_FILES['myfile']['tmp_name'] , "./user/". $FILES['myfile']['name']),这种方法使用起来很方便、灵活,这样一个文件就被上传到服务器中了,可以打开服务器中的目录查看该文件。

PHP 相关文章推荐
PHP调用三种数据库的方法(3)
Oct 09 PHP
PHP的FTP学习(二)
Oct 09 PHP
php部分常见问题总结
Mar 27 PHP
PHP中将数组转成XML格式的实现代码
Aug 08 PHP
对于PHP 5.4 你必须要知道的
Aug 07 PHP
php中将数组转成字符串并保存到数据库中的函数代码
Sep 29 PHP
PHP程序员常见的40个陋习,你中了几个?
Nov 20 PHP
php简单统计中文个数的方法
Sep 30 PHP
thinkphp3.2嵌入百度编辑器ueditor的实例代码
Jul 13 PHP
PHP中使用jQuery+Ajax实现分页查询多功能操作(示例讲解)
Sep 17 PHP
php解决安全问题的方法实例
Sep 19 PHP
PHP中mysqli_get_server_version()的实例用法
Feb 03 PHP
php中利用str_pad函数生成数字递增形式的产品编号
Sep 30 #PHP
PHP中func_get_args(),func_get_arg(),func_num_args()的区别
Sep 30 #PHP
PHP设置一边执行一边输出结果的代码
Sep 30 #PHP
PHP file_get_contents设置超时处理方法
Sep 30 #PHP
PHP CURL CURLOPT参数说明(curl_setopt)
Sep 30 #PHP
PHP 验证码不显示只有一个小红叉的解决方法
Sep 30 #PHP
php json_encode值中大括号与花括号区别
Sep 30 #PHP
You might like
人大复印资料处理程序_输入篇
2006/10/09 PHP
在windows服务器开启php的gd库phpinfo中未发现
2013/01/13 PHP
配置php网页显示各种语法错误
2013/09/23 PHP
thinkphp中html:list标签传递多个参数实例
2014/10/30 PHP
PHP会话控制实例分析
2016/12/24 PHP
如何用javascript控制上传文件的大小
2006/10/26 Javascript
JS文本获得焦点清除文本文字的示例代码
2014/01/13 Javascript
jquery实现的随机多彩tag标签随机颜色和字号大小效果
2014/03/27 Javascript
jQuery Ajax页面局部加载方法汇总
2016/06/02 Javascript
Query常用DIV操作获取和设置长度宽度的实现方法
2016/09/19 Javascript
jQuery学习笔记之入门
2016/12/14 Javascript
微信小程序 闭包写法详细介绍
2016/12/14 Javascript
JS实现焦点图轮播效果的方法详解
2016/12/19 Javascript
深入理解JS的事件绑定、事件流模型
2018/05/13 Javascript
解决angular2在双向数据绑定时[(ngModel)]无法使用的问题
2018/09/13 Javascript
django使用channels2.x实现实时通讯
2018/11/28 Javascript
js取小数点后两位四种方法
2019/01/18 Javascript
python正常时间和unix时间戳相互转换的方法
2015/04/23 Python
Python爬取十篇新闻统计TF-IDF
2018/01/03 Python
python查看列的唯一值方法
2018/07/17 Python
python中单例常用的几种实现方法总结
2018/10/13 Python
np.random.seed() 的使用详解
2020/01/14 Python
pytorch实现对输入超过三通道的数据进行训练
2020/01/15 Python
python如何代码集体右移
2020/07/20 Python
解决PyCharm不在run输出运行结果而不是再Console里输出的问题
2020/09/21 Python
python 发送邮件的四种方法汇总
2020/12/02 Python
英国户外装备和冒险服装零售商:alloutdoor
2018/01/30 全球购物
Traffic People官网:女式花裙、上衣和连身裤
2020/10/12 全球购物
表彰会主持词
2014/03/26 职场文书
环保宣传标语
2014/06/12 职场文书
工资收入证明
2014/10/07 职场文书
储备店长岗位职责
2015/04/14 职场文书
六五普法心得体会2016
2016/01/21 职场文书
Java生成读取条形码和二维码的简单示例
2021/07/09 Java/Android
Hive导入csv文件示例
2022/06/25 数据库
基于Android10渲染Surface的创建过程
2022/08/14 Java/Android