锐单电子商城 , 一站式电子元器件采购平台!
  • 电话:400-990-0325

PHP封装文件上传类 - osc_ypm51igr的个人空间 - OSCHINA - 中文开源技术交流社区

时间:2023-05-08 05:07:01 ypm28压力变送器ypm4系列圆形电连接器标签

namespace vendor;classFileUploader{//设置属性:保存允许上传的保存MIME类型

private static $types = array('image/jpg', 'image/jpeg', 'image/pjpeg()

public static function setTypes($types = array(){///判断是否为空

if (!empty($types)) self::$types = $types;

}public static $error; ///记录单文件上传过程中的错误信息

public static $errors; //记录多文件上传过程中出现的错误信息

public static $files; //记录多文件上传成功后,文件名对应信息

/**

* @desc 单文件上传

* @param string $file,上传文件信息数组

* @param string $path,上传路径

* @param int $max = 2M,最大上传尺寸

* @return bool|string,成功返回文件名,失败返回false*/

public static function uploadOne($file, $path, $max = 2000000

if (!isset($file['error']) || count($file) != 5) {

self::$error = 上传文件的错误!return false;

}//路径判断

if (!is_dir($path)) {

self::$error = 存储路径不存在!return false;

}///判断文件是否正确上传

switch ($file['error']) {case 1:

case 2:self::$error = 超过服务器允许大小的文件!';return false;case 3:self::$error = 只上传了部分文件!';return false;case 4:self::$error = 没有选择要上传的文件!';return false;case 6:

case 7:self::$error = 服务器错!return false;

}//确定文件类型

if (!in_array($file['type'], self::$types)) {

self::$error = 目前上传的文件类型不允许!return false;

}//确定业务规模

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

self::$error = 现在上传的文件超过了允许的大小!目前允许的大小是:' . (string)($max / 1000000) . 'M';return false;

}//获取随机名称

$filename = self::getRandomName($file['name);//移动上传到指定目录的临时文件

if (move_uploaded_file($file['tmp_name'], $path . '/' . $filename)) {//成功

return $filename;

}else{//失败

self::$error = 文件移动失败!return false;

}

}/**

* @desc 多文件上传

* @param array $files,二维数组上传文件信息

* @param string $path,上传路径

* @param int $max = 2M,最大上传尺寸

* @return bool 全部上传成功吗?*/

public static function uploadAll($files, $path, $max = 2000000){for($i = 0, $len = count($files['name']); $i < $len; $i ){$file = array('name' =>$files['name'][$i],

'type' =>$files['type'][$i],

'tmp_name' =>$files['tmp_name'][$i],

'error' =>$files['error'][$i],

'size' =>$files['size'][$i]

);$res = self::uploadOne($file, $path, $max);if(!$res){//错误处理

$error = self::$error;

self::$errors[] = "文件:{$file['name上传失败:{$error}!
";

}else{

self::$files[] = $file['name']. '=>'. $res;

}

}if(!empty(self::$errors)){//错误处理

//var_dump(self::$errors);

return false;

}else{return true;

}

}/**

* @desc 获取随机文件名

* @param string $filename,文件原名

* @param string $prefix,前缀

* @return string,返回新文件名*/

public static function getRandomName($filename, $prefix = 'image()

$ext = strrchr($filename, '.);//构建新名称;

$new_name = $prefix . date('YmdHis);//添加随机字符(6位大写字母)

for ($i = 0; $i < 6; $i ) {$new_name .= chr(mt_rand(65, 90));

}//返回最终结果

return $new_name . $ext;

}

}

锐单商城拥有海量元器件数据手册IC替代型号,打造电子元器件IC百科大全!

相关文章