post本地文件路径php_PHP上传本地文件需要经过的流程分析

PHP中需要把本地文件上传到服务器中,这就需要的对于文件的进行处理,虽然对于文件的上传可以通过相关的库来完成,但是对于文件上传的整个流程也要有一个清晰的认知,这里就从这方面出发,来看看文件的上传需要做哪些事情。

对于表单上传文件必须的属性

method

属性 :必须是 method='post'

enctype

属性 :对上传文件进行编码处理 :enctype ='multipart/form-data'

查看上传的临时文件

windows10的temp文件可能有权限问题,若有,需要修改上传临时文件地址

修改上传的临时文件地址

修改php.ini中的upload_tmp_dir的文件目录

超全局变量$_FILES

$_FILES是一个二维数组

对于上传文件的判断需要考虑到的问题

构建临时文件

判断是否是HTTP

POST上传的

判断是否有错误

判断文件大小

获取文件扩展名

开启php_fileinfo.dll扩展

获取mime类型

判断文件类型

构建目标文件

构建临时文件

数组中的临时文件名称

//临时文件名

//构建临时文件

$filename =

$_FILES['upload']['tmp_name'];

判断是否是HTTP POST上传

is_uploaded_file(文件) //判断文件是否是通过HTTP POST 上传的, 返回值为布尔

说明:

文件是上传的临时文件

$_FILES['upload']['tmp_name'];

//判断是否是HTTP POST上传的

if (!is_uploaded_file($filename)) {

die('非法上传');

}

判断是否有错误

//

判断是否有错误,error = 0 表示上传成功

if

($_FILES['myfile']['error']!=0) {

die('上传有错误,请重新上传');

}

判断文件大小

upload_max_filesize

//上传允许的单文件的最大值

max_file_uploads

//上传文件的允许最大数量

post_max_size

//上传所有文件字节允许的最大值

//

判断文件大小 php最大是2M

//

要求上传文件的大小小于2M

//

2M转换为字节2*1024*1024

if

($_FILES['myfile']['size']>2*1024*1024) {

die('上传文件过大');}

获取文件扩展名

使用strrpos()和substr()

//

获取文件扩展名

$index

= strrpos($filename,'.');

$ext

= substr($_FILES['myfile']['name'],$index);

使用strrchr()

$ext

= strchr($_FILES['myfile']['name'],'.');

上传文件类型的判断

利用php_fileinfo.dll对MIME类型进行严格检查:

首先在php.ini中开启

开启php_fileinfo.dll扩展

$fs = finfo_open(FILEINFO_MIME_TYPE);

$mime

= finfo_file($fs,$_FILE['upload']['tmp_name']);

上传文件

move_uploaded_file

将上传的文件移动到新的路径move_uploaded_file($tmp_name,$dst_name);//返回布尔值

说明:

$tmp_name

//是临时文件

$dst_name

//目标文件路径及自定义文件名和得到的文件扩展名.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值