文件上传分为客户端和服务器端

客户端可以通过form表单进行上传

客户端使用html表单进行上传
enctype = "multipart/form-data"用来指定表单编码数据方式
method = "POST"指明发送数据的方法
<form action = "upload.php" method = "POST" enctype = "multipart/form-data">
<input type = "hidden" name = "MAXN_FILIE_SIZE" value = "100000">
选择文件:<input type = "file" name = "myFile">
<input type = "submit" value = "上传文件">
</form>

最主要的就是type="file"的<input>标签

服务器端

 <!--
简单的文件上传的PHP脚本
->
<?php
$allowtype = array("gif","png","jpg");
$size = 1000000;
$path = "./upload"; if($_FILES['myfile']['error'] > 0){
echo "文件上传错误";
switch($_FILES['myfile']['error']){
case 1 :die('上传文件大小超过了PHP配置文件中的约定值');
case 2 :die('上传文件大小超过了浏览器中的约定值');
case 3 :die('文件只被上传部分');
case 4 :die('没有上传的文件');
default :die('其它错误');
}
} $hz = array_pop(explode(".",$_FILES['myfile']['name']));
if(!in_array($hz,$allowtype)){
die("这个后缀是<b>{$hz}</b>不是允许的类型");
} if($_FILES['myfile']['size'] > $size){
die("超过了允许的<b>$size</b>字节大小");
} $filename = date("YmdHis").rand(100,999).".".$hz; if(is_uploaded_file($_FILES['myfile']['tmp_name'])){
if(!move_uploaded_file($_FILES['myfile']['tmp_name'],$path.'/'.$filename)){
die("不能将文件移动到指定目录");
}
}else{
die("上传文件:{$_FILES['myfile']['name']}不是一个合法文件");
} echo "文件{$myfile}上传成功,保存在目录{$path}中,大小为{$_FILES['myfile']['size']}字节";
?>

用POST方法将文件上传时主要运用到的是$_FILES[]全局数组

$_FILES是一个二维数组 $_FILES['myfile']['name'] $_FILES['myfile']['tmp_name'] $_FILES['myfile']['size'] $_FILES['myfile']['error'] $_FILES['myfile']['type']

用到的函数有:is_uploaded_file()  move_uploaded_file()

多个文件上传时只需要运用myfile[]数组即可 此时的$_FILES是三维数组

 <form action = "upload.php" method = "POST" enctype = "multipart/form-data">
<input type = "hidden" name = "MAXN_FILIE_SIZE" value = "100000">
选择文件1:<input type = "file" name = "myFile[]">
选择文件2:<input type = "file" name = "myFile[]">
选择文件3:<input type = "file" name = "myFile[]">
<input type = "submit" value = "上传文件">
</form>

最新文章

  1. MAC显示文件夹路径
  2. 一起学习jQuery2.0.3源码—1.开篇
  3. Hibernate温习(一)
  4. misc设备
  5. a、b交换与比较
  6. [转载] TCP与UDP对比
  7. https实现安全传输的流程
  8. [Linux]学习笔记(4)-su及passwd的用法介绍
  9. [置顶] SPL讲解(4)--Criteria操作篇
  10. ASP.NET mvc4 WEB API异常处理
  11. 汉化testlink
  12. Redis 安装与简单示例
  13. W3Cschool学习笔记——HTML基础教程
  14. SpringMVC——使用RequestDispatcher.include()和HttpServletResponseWrapper动态获取jsp输出内容
  15. 基于ASP.NET MVC 下的Extjs的Combbox加载速率问题,终于解决啦:)
  16. 转 Ubuntu16.04+QT4.8.7开发环境搭建
  17. 比特币、莱特币钱包下载和把数据迁移到C盘以外其他盘
  18. ES之八:elasticsearch2.x下的JAVA API示例
  19. keepalive配置与管理
  20. kernel内核配置说明

热门文章

  1. 20179215《Linux内核原理与分析》第一周作业
  2. vue 打包去掉console.log
  3. BZOJ2548:[CTSC2002]灭鼠行动
  4. bzoj 2597 剪刀石头布 —— 拆边费用流
  5. 自定义Panel中添加依赖属性需要注意的问题
  6. 在Altium Designer 2009下如何添加Logo图
  7. Queue——C#浅谈
  8. 问题:oracle nvl;结果:Oracle中的NVL函数
  9. Java接口定义和实现
  10. css之布局