php上传函数怎么封装-PHP问题

资源魔 13 0

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上传代码

<!DOCTYPE html>
<html>
<head>
<title>文件上传</title>
<meta charset="utf-8">
</head>
<body>
<form method="post" action="upload.php" enctype="multipart/form-data">
<input type="file" name="image">
<input type="submit" name="" value="上传">
</form>
</body>
</html>

保举:《PHP教程》

以上就是php上传函数怎样封装的具体内容,更多请存眷资源魔其它相干文章!

标签: php php教程 php故障解决 php使用问题

抱歉,评论功能暂时关闭!