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读取文件并可支持远程文件的代码分享
Oct 03 PHP
关于PHP session 存储方式的详细介绍
Jun 25 PHP
smarty模板中使用get、post、request、cookies、session变量的方法
Apr 24 PHP
THINKPHP2.0到3.0有哪些改进之处
Jan 04 PHP
php获取访问者IP地址汇总
Apr 24 PHP
PHP类的封装与继承详解
Sep 29 PHP
php 二维数组时间排序实现代码
Nov 19 PHP
在php7中MongoDB实现模糊查询的方法详解
May 03 PHP
Laravel框架下载,安装及路由操作图文详解
Dec 04 PHP
Yii2框架中一些折磨人的坑
Dec 15 PHP
基于php伪静态的实现方法解析
Jul 31 PHP
VSCode+PHPstudy配置PHP开发环境的步骤详解
Aug 20 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
php实现在服务器上创建目录的方法
2015/03/16 PHP
php读取qqwry.dat ip地址定位文件的类实例代码
2016/11/15 PHP
由php中字符offset特征造成的绕过漏洞详解
2017/07/07 PHP
yii2.0整合阿里云oss删除单个文件的方法
2017/09/19 PHP
javascript事件模型代码
2007/07/01 Javascript
JS继承 笔记
2011/07/13 Javascript
jquery cookie实现的简单换肤功能适合小网站
2013/08/25 Javascript
js获得当前时区夏令时发生和终止的时间代码
2014/02/23 Javascript
js隐式全局变量造成的bug示例代码
2014/04/22 Javascript
EasyUi datagrid 实现表格分页
2015/02/10 Javascript
jQuery搜索子元素的方法
2015/02/10 Javascript
如何给ss bash 写一个 WEB 端查看流量的页面
2017/03/23 Javascript
深入理解Nodejs Global 模块
2017/06/03 NodeJs
JavaScript如何获取到导航条中HTTP信息
2017/10/10 Javascript
Vue filter格式化时间戳时间成标准日期格式的方法
2018/09/16 Javascript
Node.js Windows Binary二进制文件安装方法
2019/05/16 Javascript
js实现磁性吸附的示例
2020/10/26 Javascript
[02:56]《DAC最前线》之国外战队抵达上海备战亚洲邀请赛
2015/01/28 DOTA
python类定义的讲解
2013/11/01 Python
python模拟登陆Tom邮箱示例分享
2014/01/13 Python
python中abs&amp;map&amp;reduce简介
2018/02/20 Python
使用python读取txt文件的内容,并删除重复的行数方法
2018/04/18 Python
详解使用Python下载文件的几种方法
2019/10/13 Python
Python实现汇率转换操作
2020/05/03 Python
python实现时间序列自相关图(acf)、偏自相关图(pacf)教程
2020/06/03 Python
Python requests及aiohttp速度对比代码实例
2020/07/16 Python
Matplotlib 绘制饼图解决文字重叠的方法
2020/07/24 Python
html5简单示例_动力节点Java学院整理
2017/07/07 HTML / CSS
美国战术品牌:5.11 Tactical
2019/05/01 全球购物
英国医生在线预约:Top Doctors
2019/10/30 全球购物
JSF的标签库有哪些
2012/04/27 面试题
店长助理岗位职责
2013/12/13 职场文书
市场拓展计划书
2014/05/03 职场文书
2015秋季幼儿园开学寄语
2015/03/25 职场文书
社区低保工作总结2015
2015/07/23 职场文书
MySQL连接查询你真的学会了吗?
2021/06/02 MySQL