php upload函数,php上传函数怎么封装

03fbcf64e83ee4db831cc22ed206bbcf.png

php上传函数怎么封装?<?php

//上传文件调用

$file = $_FILES['image'];

//允许上传的类型

$allow = array('image/jpeg', 'image/png', 'image/jpg', 'image/gif');

$path = './uploads';

$maxsize = 1024 * 1024 * 3;

$result = upload($file, $allow, $error, $path, $maxsize);

if ($result) {

//上传成功

echo "文件上传成功,新的文件名叫".$result;

}else{

//上传失败

echo $error;

}

/**

*文件的上传

*@param array $file 上传的文件的相关信息(是一个数组有五个元素)

*@param array $allow 允许文件上传的类型

*@param string & $error 引用传递,用来记录错误的信息

*@param string $path 文件上传的目录,不带最后的 /

*@param int $maxsize = 1024*1024 允许上传的文件大小

*@return mixed false | $newname 如果上传失败返回false,成功返回文件的新名字

**/

function upload($file, $allow, &$error, $path, $maxsize =1048576){

//先判断系统错误

switch ($file['error']) {

case 1:

$error = '上传错误,超出了服务器文件限制的大小!';

return false;

case 2:

$error = '上传错误,超出了浏览器表单允许的大小!';

return false;

case 3:

$error = '上传错误,文件上传不完整!';

return false;

case 4:

$error = '上传错误,请您先选择要上传的文件!';

return false;

case 6:

case 7:

$error = '对不起,服务器繁忙,请稍后再试!';

return false;

}

//判断逻辑错误

//验证文件的大小

if ($file['size'] > $maxsize) {

//超出用户了自己规定的大小

$error = '上传错误,超出了文件限制的大小!';

return false;

}

//判断文件的类型

if (!in_array($file['type'], $allow)) {

//非法的文件类型

$error = '上传的文件的类型不正确,允许的类型有:'.implode(',', $allow);

return false;

}

//移动临时文件

//指定文件上传后保存的路径

$newname = randName($file['name']); //得到文件新的名字

//判断$path 目录是否存在 不存在则创建

if (!file_exists($path)) {

mkdir($path, 0777, true);

}

$target = $path . '/' . $newname;

$result = move_uploaded_file($file['tmp_name'], $target);

if ($result) {

//上传成功

return $newname;

}else{

//上传失败

$error = '发生未知错误,上传失败';

return false;

}

}

/**

*生成一个随机名字的函数 文件名=当前的时间 + 随机的几位数字

*@param string $filename 文件的原始名字

*@return string $newname 文件的新名字

*

*/

function randName($filename){

//生成文件名的时间部分

$newname = date('YmdHis');

//加上随机的6位数

$str = '0123456789';

for ($i=0; $i < 6; $i++) {

$newname .= $str[mt_rand(0, strlen($str)-1)];

}

//加上文件的后缀名

$newname .= strrchr($filename, '.');

return $newname;

}

HTML上传代码

文件上传

推荐:《PHP教程》

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值