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学习之PHP表达式
Oct 09 PHP
PHP个人网站架设连环讲(一)
Oct 09 PHP
cmd下运行php脚本
Nov 25 PHP
神盾加密解密教程(二)PHP 神盾解密
Jun 08 PHP
PHP与MYSQL中UTF8 中文排序示例代码
Oct 23 PHP
浅析PHP文件下载原理
Dec 25 PHP
php判断对象是派生自哪个类的方法
Jun 20 PHP
PHP使用redis实现统计缓存mysql压力的方法
Nov 14 PHP
PHP读取mssql json数据中文乱码的解决办法
Apr 11 PHP
Laravel中前端js上传图片到七牛云的示例代码
Sep 04 PHP
php curl简单采集图片生成base64编码(并附curl函数参数说明)
Feb 15 PHP
PHP使用PDO、mysqli扩展实现与数据库交互操作详解
Jul 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/04/27 PHP
PHP数组式访问接口ArrayAccess用法分析
2017/12/28 PHP
PHP中isset、empty的用法与区别示例详解
2020/11/05 PHP
基于jquery的一个浮动框(扩展性比较好 )
2010/08/27 Javascript
jQuery ajax在GBK编码下表单提交终极解决方案(非二次编码方法)
2010/10/20 Javascript
JS操作数据库的实例代码
2013/10/17 Javascript
jfreechart插件将数据展示成饼状图、柱状图和折线图
2015/04/13 Javascript
JavaScript 事件对象介绍
2015/04/13 Javascript
div实现自适应高度的textarea实现angular双向绑定
2017/01/08 Javascript
JS操作input标签属性checkbox全选的实现代码
2017/03/02 Javascript
使用vue-cli+webpack搭建vue开发环境的方法
2017/12/22 Javascript
vue.js给动态绑定的radio列表做批量编辑的方法
2018/02/28 Javascript
Bootstrap-table使用footerFormatter做统计列功能
2018/09/07 Javascript
vue接入腾讯防水墙代码
2019/05/07 Javascript
vue实现弹幕功能
2019/10/25 Javascript
详解Vue的异步更新实现原理
2020/12/22 Vue.js
JavaScript 中的六种循环方法
2021/01/06 Javascript
对django中render()与render_to_response()的区别详解
2018/10/16 Python
python3.6+selenium实现操作Frame中的页面元素
2019/07/16 Python
python 标准差计算的实现(std)
2019/07/29 Python
Python在Matplotlib图中显示中文字体的操作方法
2019/07/29 Python
命令行运行Python脚本时传入参数的三种方式详解
2019/10/11 Python
Python的几种主动结束程序方式
2019/11/22 Python
Python使用PyQt5/PySide2编写一个极简的音乐播放器功能
2020/02/07 Python
python实现时间序列自相关图(acf)、偏自相关图(pacf)教程
2020/06/03 Python
python爬取音频下载的示例代码
2020/10/19 Python
python基于socket模拟实现ssh远程执行命令
2020/12/05 Python
奥地利领先的在线药房:SHOP APOTHEKE
2019/10/07 全球购物
毕业研究生的自我鉴定
2013/11/30 职场文书
大学生涯自我鉴定
2014/01/16 职场文书
银行办公室岗位职责
2014/03/10 职场文书
房产分割协议书范文
2014/11/21 职场文书
2014年政风行风工作总结
2014/11/22 职场文书
指导教师推荐意见
2015/06/05 职场文书
教你用Java在个人电脑上实现微信扫码支付
2021/06/13 Java/Android
Django实现drf搜索过滤和排序过滤
2021/06/21 Python