/**
* Created by PhpStorm.
* User: 17839
* Date: 2020/3/23
* Time: 10:54
*/
header("Content-type: text/html; charset=utf-8");
/** 文件上传
* @param $file 接受的文件 $_FILES['file']
* @param $mime 允许上传文件的类型
* @param $maxSize 允许上传的最大文件
* @param $filepath 保存文件的目录
* @return string
*/
function upload ($file, $mime, $maxSize, $filePath) {
switch ($file['error']) {
case 1:
return '文件超出了php.ini限制';
case 2:
return '文件超出了html限制';
case 3:
return '文件部分上传';
case 4:
return '没有选择文件';
case 6:
return '服务器内部错误';
case 7:
return '服务器内部错误';
}
// 判断用户提交的文件是否合法
if (!in_array($file['type'], $mime)) {
exit('上传的文件类型不合法');
}
//上传文件的最大尺寸
if ($file['size'] > $maxSize) {
exit('上传的文件太大');
}
$tmp = $file['tmp_name'];
// 文件名
$fileName = getRandName(6);
// 获取文件的扩展名
$ext = pathinfo($file['name'], PATHINFO_EXTENSION);
$basename = $filePath . $fileName . '.' . $ext;
// 上传成功,返回拼接的文件
if (move_uploaded_file($tmp, $basename)) {
return $basename;
}
}
// 随机获取一段字符串,作为文件的名字
function getRandName($num)
{
$str = 'ABCDEFGHIJKLMNOPQRSTUVWSYZzbcdefghijklmnopqrstuvwxyz0123456789';
$str = str_shuffle($str);
$str = substr($str, 0, $num);
return $str;
}
// 调用
$file = $_FILES['file'];
$mime = ['image/jpeg', 'image/jpg', 'image/pjpeg', 'image/png', 'image/gif'];
$maxSize = 1024 * 1024 * 3;
$filepath = './image/';
upload($file, $mime, $maxSize, $filepath);
php封装文件上传函数
最新推荐文章于 2023-05-20 10:58:03 发布