明明定义了函数提示Fatal error: Call to undefined function xxx()

chengbosheng 2016-08-12 11:55:46
检查了好多遍,感觉没问题啊。希望大家伙帮我找找问题。先谢谢大家啦
<?php 
//生成唯一的标示
function getuniname(){
return md5(uniqid(microtime(true),true));
}
//得到文件拓展名并打乱文件名
function getext($filename){
//构建上传文件信息
function buildinfo(){
$i=0;
foreach ($_FILES as $v){
if(is_string($v['name'])){
$files[$i]=$v;
$i++;
//多文件
}else{
foreach($v['name'] as $key=>$val){
$files[$i]['name']=$val;
$files[$i]['size']=$v['size'][$key];
$files[$i]['tmp_name']=$v['tmp_name'][$key];
$files[$i]['error']=$v['error'][$key];
$files[$i]['type']=$v['type'][$key];
$i++;
}
}
}
return $files;
}

function uploadfile($fileinfo,$allowext=array("gif","jpeg","jpg","png"),$maxsize=2097152,$imgflag=true){
if(!file_exists($fileinfo)){
mkdir($fileinfo,0777,true);
}
$file=buildinfo();
foreach($file as $filee){
if($filee['error']===UPLOAD_ERR_OK){
$ext=getext($filee['name']);
//检查文件的扩展名
if(!in_array($ext,$allowext)){
exit("非法文件类型");
}
//检验是否为真正的图片类型
if($imgflag){
if(!getimagesize($filee['tmp_name'])){
exit("不是真正图片类型");
}
}
//上传文件的大小
if($filee['size']>$maxsize){
exit("上传文件过大");
}
//检验是否为http post上传
if(!is_uploaded_file($filee['tmp_name'])){
exit("不是通过http post方式上传");
}
$filename=getuniname().".".$ext;
$destination="C:/xampp/htdocs/gtrading/img/user_photo/".$filename;
if(move_uploaded_file($filee['tmp_name'],$destination)){
$filee['name']=$filename;
unset($filee['error'],$filee['tmp_name']);
$uploadedfiles[$i]=$filee;
$i++;
}
}else{
switch($filee['error']){
case 1:
echo "<script type='text/javascript'>alert('上传的文件超过了 php.ini 中 upload_max_filesize 选项限制的值');history.back();</script>";
break;
case 2:
echo "<script type='text/javascript'>alert('上传文件的大小超过了 HTML 表单中 MAX_FILE_SIZE 选项指定的值');history.back();</script>";
break;
case 3:
echo "<script type='text/javascript'>alert('文件只有部分被上传');history.back();</script>";
break;
case 4:
echo "<script type='text/javascript'>alert('没有文件被上传');history.back();</script>";
break;
}
}
return $uploadedfiles;
}
}
}
$fileinfo=uploadfile();
print_r($uploadfile);
...全文
855 2 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
xuzuning 2016-08-13
  • 打赏
  • 举报
回复
你的 uploadfile 函数,定义在 getext 函数之中 所以需要先执行一次(仅一次)getext 函数
世纪猛男 2016-08-13
  • 打赏
  • 举报
回复
问题已解决,谢谢楼上的朋友。

21,893

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧