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 相关文章推荐
一次编写,随处运行
Oct 09 PHP
PHP程序员编程注意事项
Apr 10 PHP
PHP+Ajax异步通讯实现用户名邮箱验证是否已注册( 2种方法实现)
Dec 28 PHP
基于PHP选项与信息函数的使用详解
May 10 PHP
使用php判断服务器是否支持Gzip压缩功能
Sep 24 PHP
php实现图形显示Ip地址的代码及注释
Jan 20 PHP
yum命令安装php7和相关扩展
Jul 04 PHP
php实用代码片段整理
Nov 12 PHP
使用php自动备份数据库表的实现方法
Jul 28 PHP
详解PHP如何更好的利用PHPstorm的自动提示
Aug 18 PHP
PHP生成加减算法方式的验证码实例
Mar 12 PHP
PHP如何将图片文件上传到另外一台服务器上
Aug 26 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
批量修改RAR文件注释的php代码
2010/11/20 PHP
php GeoIP的使用教程
2011/03/09 PHP
php操作MongoDB基础教程(连接、新增、修改、删除、查询)
2014/03/25 PHP
PHP常用日期加减计算方法实例小结
2018/07/31 PHP
ThinkPHP5 的简单搭建和使用详解
2018/11/15 PHP
jQuery对html元素取值与赋值的方法
2013/11/20 Javascript
兼容最新firefox、chrome和IE的javascript图片预览实现代码
2014/08/08 Javascript
jquery实现多行文字图片滚动效果示例代码
2014/10/10 Javascript
根据配置文件加载js依赖模块
2014/12/29 Javascript
JS使用eval解析JSON的注意事项分析
2015/11/14 Javascript
JavaScript学习总结之JS、AJAX应用
2016/01/29 Javascript
Jquery Easyui分割按钮组件SplitButton使用详解(17)
2016/12/18 Javascript
基于JavaScript实现下拉列表左右移动代码
2017/02/07 Javascript
js记录点击某个按钮的次数-刷新次数为初始状态的实例
2017/02/15 Javascript
BootStrap的select2既可以查询又可以输入的实现代码
2017/02/17 Javascript
Vue 父子组件数据传递的四种方式( inheritAttrs + $attrs + $listeners)
2018/05/04 Javascript
基于vue-cli npm run build之后vendor.js文件过大的解决方法
2018/09/27 Javascript
JavaScript闭包相关知识解析
2019/10/19 Javascript
解决ele ui 表格表头太长问题的实现
2019/11/13 Javascript
在vue中使用echarts(折线图的demo,markline用法)
2020/07/20 Javascript
[47:04]EG vs RNG 2019国际邀请赛小组赛 BO2 第二场 8.16
2019/08/18 DOTA
[49:58]完美世界DOTA2联赛PWL S3 Magma vs DLG 第一场 12.18
2020/12/19 DOTA
Python中shutil模块的学习笔记教程
2017/04/04 Python
Python绘制3d螺旋曲线图实例代码
2017/12/20 Python
python删除服务器文件代码示例
2018/02/09 Python
python 除法保留两位小数点的方法
2018/07/16 Python
Python中Proxypool库的安装与配置
2018/10/19 Python
python 怎样进行内存管理
2020/11/10 Python
python 基于opencv去除图片阴影
2021/01/26 Python
详解python的xlwings库读写excel操作总结
2021/02/26 Python
CSS3动画:5种预载动画效果实例
2017/04/05 HTML / CSS
超市5.1促销活动
2014/01/15 职场文书
2015教师年度考核评语
2015/03/25 职场文书
2015年社会治安综合治理工作总结
2015/04/10 职场文书
买卖合同纠纷代理词
2015/05/25 职场文书
教师节表彰会主持词
2015/07/06 职场文书