运行后 卡在 ‘请上传合法文件 ’ 麻烦老师帮忙看看
<?php date_default_timezone_set('PRC'); header('content-type:text/html;charset=utf-8'); include_once './lib/fun.php'; session_start(); if(!isset($_SESSION['user'])||empty($_SESSION['user'])) { msg(2, '请登入', ';login.php'); } $user=$_SESSION['user']; //表单进行提交处理 if(!empty($_POST['name'])){ $con=mysqlInit('127.0.0.1','root','root','imooc_mall'); $name= mysql_real_escape_string(trim($_POST['name'])); $price=intval(($_POST['price']));//价格 $des=mysql_real_escape_string(trim($_POST['des'])); $content=mysql_real_escape_string(trim($_POST['content'])); $nameLength=mb_strlen($name,'utf-8'); if($nameLength<=0||$nameLength>30){ msg(2,'画品名应在1-30字符之间'); } if(empty($price)){ msg(2,'价格不能为空'); } $desLength=mb_strlen($des,'utf-8'); if($desLength<=0||$desLength>=200){ msg(2,'简介应在1-200字符之间'); } $contentLength=mb_strlen($content,'utf-8'); if($contentLength<=0||$contentLength>=9999999){ msg(2,'简介应在1-9999999字符之间'); } $userId=$user['id']; $now=$_SERVER['REQUEST_TIME']; $pic=imgUpload($_FILES['$file']); //查询是否有重复ID $sql="SELECT COUNT( `id` ) as 'total' FROM `im_goods` WHERE `name` = '{$name}'"; $obj=mysql_query($sql); $result=mysql_fetch_assoc($obj); if(isset($result['total'])&&$result['total']>0){ msg(2,'商品名已存在,请重新输入'); } unset($sql,$obj,$result); $sql="INSERT `im_goods`(`name`,`price`,`des`,`content`,`pic`,`user_id`,`create_time`,`update_time`,`view`) value('$name','$price','$des','$content','$pic','$userId','$now','$now',0})"; $obj=mysql_query($sql); if($obj){ msg(1,'操作成功','login.php'); }else{ msg(2,mysql_errno());exit; } } ?>
fun
<?php /** * 数据库连接 * @param $host * @param $username * @param $password * @param $dbname * @return bool|resource */ function mysqlInit($host,$username,$password,$dbname){ $con=mysql_connect($host,$username,$password); if(!$con){ return false; } mysql_select_db($dbname); mysql_set_charset('utf8'); return $con; } /** * 密码加密 * @param $password * @return bool|string */ function createPassword($password){ if(!$password){ return false; } return md5(md5($password).'IMOOC'); } /** * 资源调用 * @param $type * @param null $msg * @param null $url */ function msg($type,$msg=null,$url=null){ //header('Location:msg.php?type={$type}&msg=($msg)&url=($url)') $toUrl="Location:msg.php?type={$type}"; $toUrl.=$msg?"&msg=($msg)":''; $toUrl.=$url?"&msg=($url)":''; header($toUrl); exit; } function imgUpload($file){ //检测上传文件是否合法 if(!is_uploaded_file($file['tmp_name'])){ msg(2,'请上传合法文件'); } //图像类型验证 $type=$file['type']; if(!in_array($type,array("image/png","image/gif","image/jpeg"))){ msg(2,'请上传png,gif,jpg格式图像'); } //上传目录 $uploadPath='./static/file/'; //上传目录访问URL $uploadUrl='/static/file/'; //上传文件夹 $fileDir=date('Y/md',$_SERVER['REQUEST_TIME']); //检测上传目录是否存在 if(!is_dir($uploadPath.$fileDir)){ mkdir($uploadPath.$fileDir,0755,true);//递归创建目录 } //文件名加密 //获取文件扩展名 $ext=strtolower(pathinfo($file['name'],PATHINFO_EXTENSION)); //上传文件名称 $img=uniqid().mt_rand(1000,9999).'.'.$ext; //物理地址 $imgPath=$uploadPath.$fileDir.$img; //url地址 $imgUrl='http://127.0.0.1/mall'.$uploadPath.$fileDir.$img; //操作失败 查看上传目录权限 if(!move_uploaded_file($file['tmp_name'],$imgPath)){ msg(2,'服务器繁忙,请稍后再试'); } return $imgUrl; }
8
收起
正在回答
1回答
你好,上传的文件不合法,通过检查看到上面的文件中有$pic=imgUpload($_FILES['$file']);这里的$file不应该加单引号,否则文件名称就变成$file这个字符串了,$file在这里应该是一个变量,代表文件名称,应为imgUpload($_FILES[$file]),如果修改完后还有问题,建议从这里开始一步一步向上查找,打印相关内容,看看哪里是不是还有类似的问题。
如果解决了你的问题,请采纳,祝学习愉快~
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星