php文件上传管理系统,php文件上传流程是什么

php文件上传流程:首先配置PHP文件,并设置前端表单;然后将临时文件默认保存在所设置的目录下;接着对file数组中的error属性进行判断处理;最后在前端可以对上传的文件类型,大小进行限制。

1dae88c2360e7753a660127ddeed55f5.png

本教程操作环境:windows7系统、PHP5.6版,DELL G3电脑,该方法适用于所有品牌电脑。

php文件上传流程:

1、php配置文件

php.ini文件中的file uploads部分定义了相关文件上传配置,file_uploads = On 打开文件上传

upload_tmp_dir =临时目录

upload_max_filesize = 2M最大上传大小

max_file_uploads = 20单次最大上传文件数

2、前端表单

当使用由文件上传控件的表单时,必须将form的enctype设置为"multipart/form-data"。

可以在客户端对上传文件的大小与类型进行限制:

3、后台处理

上传后会在服务器端得到一个$_FILES文件数组如下:

c5e00e991ab4f605ae29fce7cd59bf4f.png

上传到服务器的临时文件默认保存在php.ini中upload_tmp_dir所设置的目录下,我们需要将文件移动到指定位置:<?php

header('Content-type:text/html;charset=utf-8');

$myfile=$_FILES['myfile'];

//获取文件数组['myfile']的属性tmp_name与name

$tmp=$myfile['tmp_name'];

$picname=$myfile['name'];

//windows采用GBK编码,php采用utf-8编码,需要改变文件名的编码格式

$picname=iconv('utf-8','GBK',$picname);

//将零时文件$tmp移动到指定目录userpic并命名为$picname

copy($tmp,"userpic/".$picname);

4、错误处理

对file数组中的error属性进行判断处理:$error=$myfile['myfile']['error'];

if ($error==0){//为0,代表上传成功

if (move_uploaded_file($tmp,"userpic/".$picname)) {

echo "移动文件成功";

}else{

echo "移动文件失败";

}

}else{//不为0,匹配错误信息

switch ($error){

case 1:

echo "超过文件最大上传限制";//php.ini中upload_max_filesize

break;

case 2:

echo "超过表单文件大小限制";//HTML表单中MAX_FILE_SIZE选项

break;

case 3:

echo "文件部分被上传";

break;

case 4:

echo "未选择上传文件";

break;

case 7://文件写入失败

case 8:

echo "系统错误";

break;

}

}

5、上传限制

在前端可以对上传的文件类型,大小进行限制:

注意限制是以字节为单位

在服务器端也要做响应的限制:$size=$myfile['size'];//获取文件大小

$MaxSize=2097152;//设置最大允许字节

$type=$myfile['type'];//获取图片类型

$AllowTypr=array('image/jpeg','image/png','image/gif');//允许类型数组

if ($error==0){//为0,代表上传成功

if ($size>$MaxSize){

echo "";

echo "";

exit();

}

if (!in_array($type,$AllowTypr)){

echo "";

echo "";

exit();

}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值