PHP中使用文件域上传文件,需要几个步骤,首先先判断有无文件域,然后判断是否选择了文件,最后判断文件是否上传成功。

需要注意的是 表单中有文件域,必须将method设置为post, enctype设置为multipart/form-data

在文件上传时会给服务端以数组的形式返回几个值,如下:

    //array(5) {
// ["name"]=>
// string(25) "mmexport1534732827710.jpg"
// ["type"]=>
// string(10) "image/jpeg"
// ["tmp_name"]=>
// string(26) "C:\Windows\Temp\phpD9E.tmp"
// ["error"]=>
// int(0)
// ["size"]=>
// int(145606)
//}

其中''name"为上传文件名,"type"为上传文件类型,"tmp_name"为上传文件后所存放的路径,"error"为上传文件的错误问题,"size"为上传文件的大小。

具体代码如下:

<?php
function upload() {
if (!(isset($_FILES['avatar']))) {
//是否有文件域
$GLOBALS['message'] = '没有上传文件';
return;
}
$avatar = $_FILES['avatar'];
var_dump($avatar);
if ($avatar['error']!==UPLOAD_ERR_OK) {
//服务端没有接受到上传的文件
$GLOBALS['message'] = '上传失败';
return;
}
//接收到了文件
//将文件从临时目录移动到网站范围内
$source=$avatar['tmp_name']; //源文件路径
$target='./uploads/' . $avatar['name']; //目标路径
//==>./uploads/mmexport1534732827710.jpg
$moved=move_uploaded_file($source, $target);
if (!$moved) {
$GLOBALS['message'] = '上传失败';
return;
}
//移动成功===>上传成功
$GLOBALS['message'] = '上传成功'; }
if ($_SERVER['REQUEST_METHOD']==='POST') {
//接受文件 使用一个 叫做$_FILES 超全局成员
//var_dump($_FILES);
upload();
} ?> <!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>文件域</title>
</head>
<body>
<!-- 表单中有文件域,必须将method设置为post, enctype设置为multipart/form-data -->
<!-- enctype 默认是urlencoded 格式 key1=value1&key2=value2 -->
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post" enctype="multipart/form-data">
<input type="file" name="avatar">
<button>上传</button>
<?php if (isset($message)): ?>
<?php echo $message ?>
<?php endif ?>
</form>
</body>
</html>

PHP文件域上传的更多相关文章

  1. spring boot:单文件上传/多文件上传/表单中多个文件域上传(spring boot 2.3.2)

    一,表单中有多个文件域时如何实现说明和文件的对应? 1,说明和文件对应 文件上传页面中,如果有多个文件域又有多个相对应的文件说明时, 文件和说明如何对应? 我们在表单中给对应的file变量和text变 ...

  2. Ueditor1.4.3实现跨域上传到独立文件服务器,完美解决单文件和多文件上传!

    再写配置方法之前先吐槽一下网上的各种教程,TM没一个有卵用,一群傻屌不会写就别写,写了就要负责. 百度google搜了半天,全是配置什么document.domain,根域名什么的,我只想对你说: 好 ...

  3. Angular4 后台管理系统搭建(10) - 做一个通用的可跨域上传文件的组件

    写的很慢,不知不觉这是第十篇了.但是我其他事情太多,只能抽空写下.现在angular4或angular2流行的上传方式是ng2-file-upload.它的功能很强大.但是我没有配置成可以跨域上传的. ...

  4. net core WebApi——文件分片上传与跨域请求处理

    目录 前言 开始 测试 跨域 小结 @ 前言 在之前整理完一套简单的后台基础工程后,因为业务需要鼓捣了文件上传跟下载,整理完后就迫不及待的想分享出来,希望有用到文件相关操作的朋友可以得到些帮助. 开始 ...

  5. HTML5 文件域+FileReader 分段读取文件并上传(七)-WebSocket

    一.单文件上传实例 HTML: <div class="container"> <div class="panel panel-default" ...

  6. js跨域上传文件 iframe

    封装好的jq插件 (function () { var iframe = '<iframe name="jqUploadIframe" style="display ...

  7. html5上传图片(一)一跨域上传

    最近开发一个上传图片的模块,传图片的接口不支持跨域上传,并且只支持单张上传,而我们的产品要求要实现多张上传.我搞了一个代理页面,先将图片传到代理页面,然后再通过代理页面传到上传图片接口.虽然这种方式经 ...

  8. struts2 文件的上传下载 表单的重复提交 自定义拦截器

    文件上传中表单的准备 要想使用 HTML 表单上传一个或多个文件 须把 HTML 表单的 enctype 属性设置为 multipart/form-data 须把 HTML 表单的method 属性设 ...

  9. 从Ueditor跨域上传,总结的一次跨域上传的爬坑经历

    项目内其中一个管理后台需要发布文章,需要一个富文本编辑器,经过一番选择后,最终选择了百度的Ueditor. 由于上传的文件是上传到另一台专门存放图片等静态资源的服务器上面的,所以就涉及到了跨域上传. ...

随机推荐

  1. 提取Jar2Exe源代码,JavaAgent监控法

    最近遇见一个麻烦,明明知道是java写的小软件,但是打包成了exe,木得办法,之前打包的都有缓存能在TEMP文件夹找到.这次可不一样了,特此记录一下. 为此特地搜集了一些java打包成exe的软件. ...

  2. PHP如何处理emoji表情存入utf8的数据库

    一般Mysql表设计时,都是用UTF8字符集的.把带有emoji的昵称字段往里面insert一下就没了,整个字段变成了空字符串.这是怎么回事呢? 原来是因为Mysql的utf8字符集是3字节的,而em ...

  3. [转]impala操作hive数据实例

    https://blog.csdn.net/wiborgite/article/details/78813342 背景说明: 基于CHD quick VM环境,在一个VM中同时包含了HDFS.YARN ...

  4. zabbix 安装rpm

    zabbix安装 1 安装数据库 #yum install mariadb-server  -y 配置配置文件 #vim /etc/my.cnf skip_name_resolve=on innodb ...

  5. Android Studio 2.1及其以上版本中的instant run功能 介绍

    Android Studio 2.0及其以后版本中的instant run功能 介绍 转 https://blog.csdn.net/zy987654zy/article/details/514961 ...

  6. 极简科普 1:什么是 VOIP

    VoIP 的全称是 Voice over Internet Protocol.简单说,就是用过 IP 网络进行即时的语音/视频通信.注意,这里只强调了在传输过程中有使用 IP 网络,并没有说只通过 I ...

  7. selenium3 调用IE Unable to get browser

    本地环境开发,移至服务器上出现Unable to get browser的问题.经过查找找到问题所在(第六点,需要修改注册表增加键): 1.下载IEDriverServer.进入索引页,首先选择版本号 ...

  8. Android应用程序支持不同屏幕(尺寸、密度)

    how to build a user interface using Android layouts for all types of devices 使用Android布局设计的UI接口用于不同的 ...

  9. HTML入门14

    HTML表单 这块部分开始强调表单也是用的比较多的部分,好好补漏啊啊啊啊 表单用来做交互,处理所有方面结构到样式,到自定义小部件. form元素,严禁嵌套表单,表单嵌套会使得表单得行为不可预知,引入f ...

  10. 马昕璐 201771010118《面向对象程序设计(java)》第十八周学习总结

    实验十八  总复习 实验时间 2018-12-30 1.实验目的与要求 (1) 综合掌握java基本程序结构: (2) 综合掌握java面向对象程序设计特点: (3) 综合掌握java GUI 程序设 ...