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

本文分为五个部分针对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程序设计有所帮助。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值