本文分为五个部分针对php上传文件进行分析讲解,具体内容如下

文件上传变量

将服务器上的临时文件移动到指定目录下

php.ini上传相关配置

error错误号

单文件上传实例

1.文件上传变量

//$_FILES:文件上传变量

#name 文件的名称

#type 文件的类型

#tmp_name 临时文件名

#size 文件的大小

#error 错误信息

$filename = $_FILES["myFile"]["name"];

$type = $_FILES["myFile"]["type"];

$tmp_name = $_FILES["myFile"]["tmp_name"];

$size = $_FILES["myFile"]["size"];

$error = $_FILES["myFile"]["error"];

2.将服务器上的临时文件移动到指定目录下

//1.move_uploaded_file($tmp_name,$destination):将服务器上的临时文件移动到指定目录下

#上传后文件名字,移动成功返回true,否则返回false

move_uploaded_file($tmp_name,"D:/".$filename);

//2.copy($tmp_name,$destination)

copy($tmp_name,"D:/".$filename);

3.php.ini上传相关配置

# file_uploads=On 支持HTTP上传

# upload_tmp_dir="" 临时文件保存的目录

# upload_max_filesize=2M 允许上传文件的最大值

# max_file_uploads=20 允许一次上传的最大文件数

# post_max_size=8M post方式发送数据的最大值

# max_execution_time = 1 设置了脚本被解析器终止之前允许的最大执行时间,单位为秒,防止程序写的不好而占尽服务器资源

# max_input_time = 60 脚本解析输入数据允许的最大时间,单位为秒

# max_input_nesting_level = 64 设置输入变量的嵌套深度

# max_input_vars = 1000 接受多少输入的变量

# memory_limit = 128M 最大单线程的独立内存使用量

4.error错误号

# 0,没有错误发生,文件上传成功。

# 1,上传的文件超过了 php.ini 中 upload_max_filesize 选项限制的值。

# 2,上传文件的大小超过了 HTML 表单中 MAX_FILE_SIZE 选项指定的值。

# 3,文件只有部分被上传。

# 4,没有文件被上传。

# 6,找不到临时文件夹。

# 7,文件写入失败。

# 8,上传的文件被PHP扩展程序中断

5.单文件上传实例form.html

Document

请选择你要上传的文件:

fileUpload.php

header("content-type:text/html;charset:utf-8");

$fileInfo = $_FILES["myFile"];

$filename = $fileInfo["name"];

$type = $fileInfo["type"];

$error = $fileInfo["error"];

$size = $fileInfo["size"];

$tmp_name = $fileInfo["tmp_name"];

$maxSize=2*1024*1024;//允许的最大值

$allowExt=array("jpeg","jpg","gif");

$flag = true;//检测是否为真实的图片类型

//判断错误号

if($error == 0){

//判断上传文件的大小

if($size>$maxSize){

exit("上传文件过大");

}

//检测文件类型

//取出文件扩展名

$ext = pathinfo($filename,PATHINFO_EXTENSION);

if(!in_array($ext,$allowExt)){

exit("非法文件类型");

}

//检测是否为真实的图片类型

if($flag){

if(@!getimagesize($tmp_name)){

exit("不是正的图片类型");

}

}

//创建目录

$path = "D:/test/";

if(!file_exists($path)){

mkdir($path,0777,true);

chmod($path,0777);

}

//确保文件名唯一,防止重名覆盖

$uniName = md5(uniqid(microtime(true),true)).".".$ext;

$destination = $path.$uniName;

if(@move_uploaded_file($tmp_name,$destination)){

echo "上传成功";

}else{

echo "上传失败";

}

}else{

switch($error){

case 1:

case 2:

case 3:

case 4:

case 6:

case 7:

case 8:

echo "上传错误";

break;

}

}

希望本文所述对大家学习php程序设计有所帮助。

php input file 上传文件类型,php轻松实现文件上传功能相关推荐

  1. 无法确定本地文件类型_如何从文件内容确定文件类型

    无法确定本地文件类型 I. Introduction 一,引言 There's an interesting discussion going on now in an Experts Exchang ...

  2. linux查看文件元数据,Linux切换目录、查看目录下的文件、文件类型介绍和查看文件的元数据信息...

    本篇博客介绍几个Linux的基础命令:写的如有不足,还望读者不吝赐教! 切换目录 cd(ChangeDirectory)切换工作目录 语法:cd  [要切换的目录] cd:进入用户的宿主目录(回家) ...

  3. android 魅族扫码,魅族Flyme8扫码快传太实用,轻松实现文件高速传输

    原标题:魅族Flyme8扫码快传太实用,轻松实现文件高速传输 在经过了几个月的内测之后,一直在热销的魅族16T手机也迎来了Flyme8 稳定版的更新,在流畅度和交互方面带来了较大的提升,进一步提升了用 ...

  4. php 怎么查看文件类型信息,php获取文件类型和文件信息的方法

    php获取文件类型和文件信息的方法 发布于 2015-10-07 05:26:52 | 81 次阅读 | 评论: 0 | 来源: 网友投递 PHP开源脚本语言PHP(外文名: Hypertext Pr ...

  5. android判断文件类型是否为音频文件

    android 中判断音频文件类型,通常有两种做法.一种是根据音频文件扩展名,这是最常用.最简单的方法:另一种是判断音频 文件头 信息,也是最准确的办法. 在Android系统内部提供了根据 文件名 ...

  6. input file控件使用accept过滤 限制的文件类型

    在文件上传控件(input type='file')中,可以通过accept属性实现对文件类型的过滤. 一.相关代码: 下面给出对应的文件上传控件代码: <input type="fi ...

  7. java fileupload 文件类型,java用Commons-fileupload 文件的上传

    基于表单的文件上传 如果在表单中使用表单元素 ,浏览器在解析表单时,会自动生成一个输入框和一个按钮,输入框可供用户填写本地文件的文件名和路径名,按钮可以让浏览器打开一个文件选择框供用户选择文件: 当表 ...

  8. Html input file控件使用accept过滤 限制的文件类型

    Html input file控件使用accept过滤文件 ,老的浏览器不支持,不过对应新的浏览器还是方便很多 <input type="file" accept=" ...

  9. arcgis怎么压缩tif文件_PDF怎么压缩上传?教你轻松实现文件瘦身

    PDF怎么压缩上传?在日常办公中,PDF文件是我们最常使用的文档格式之一.很多时候我们需要将它们需要上传到平台进行审批,平台上传一般都有大小限制,那么我们如何压缩PDF文档并且保持清晰度呢?下面就教大 ...

最新文章

  1. (转载)连连看游戏外挂详细制作过程
  2. c++缓冲区buffer
  3. MySQL的转义字符“\”
  4. 如何由jdk的安装版本改成非安装版本
  5. 搬家Testing.
  6. windows mobile C# net3.5 如何捕捉Arrow的CheckBox的KeyDown事件?
  7. Selenium简介以及selenium环境搭建
  8. HttpHandler(ashx)中获取Session状态
  9. multi task训练torch_手把手教你使用PyTorch(2)-requires_gradamp;computation graph
  10. 图解 CSS (2): border - 边框
  11. 关于win7启动看不到桌面的解决方法
  12. python解读器_Python装饰器完全解读
  13. HDU 5879 Cure -2016 ICPC 青岛赛区网络赛
  14. nuxt 中 vuex 路由鉴权 keeplive
  15. Android shell 授权文件执行权限
  16. UE4 键盘按键实现开关门
  17. 清茶一杯-手机、电子阅读器和生活
  18. 如何在Windows 11上的WSL2做到GPU直通,并用Deepracer本地训练炸干电脑的资源(显卡降价了,618等等党还等什么,一起来加入Deepracer的比赛学习交流吧)
  19. 优化方法——罚函数法
  20. 鱼池显示服务器错误502,502+bad+gateway怎么解决

热门文章

  1. 1001: [BeiJing2006]狼抓兔子(对偶图)
  2. 每天一个linux命令(55)--at命令
  3. 优步杭州推出顺路接单功能,不久将向全国开放!
  4. Ref和Out关键字的区别
  5. 81、通过secureCRT连接虚拟机时几种连接方式的不同
  6. 查询一个月一来表空间的变化情况
  7. Tomcat的8080、8005、8009端口
  8. HDU-5876 Sparse Graph
  9. iOS 评论APP撰写评论
  10. Android 学习笔记 Service服务与远程通信...(AIDL)