运行后 卡在 ‘请上传合法文件 ’ 麻烦老师帮忙看看
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 | <?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
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 | <?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积分~
来为老师/同学的回答评分吧