热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

使用php的图片上传类进行图片上传,总是提示:上传文件时出错:未允许类型。都是默认的配置

使用php的图片上传类进行图片上传,总是提示:上传文件时出错:未允许类型。都是默认的配置{代码...}{代码...}
使用php的图片上传类进行图片上传,总是提示:上传文件时出错 : 未允许类型 。都是默认的配置

 $uploadImg= new FileUpload;
                  if($uploadImg ->upload("head")){
                    echo '
';
                    var_dump($uploadImg ->getFileName());
                    echo '
'; }else{ echo '
';
                    var_dump($uploadImg ->getErrorMsg());
                    echo '
'; }
                  setOption($key, $val);
            }
            return $this;
        }

        /**
         * 调用该方法上传文件
         * @param    string    $fileFile    上传文件的表单名称 
         * @return    bool                 如果上传成功返回数true 
         */
        
        function upload($fileField) {
            $return = true;
            /* 检查文件路径是滞合法 */
            if( !$this->checkFilePath() ) {                
                $this->errorMess = $this->getError();
                return false;
            }
            /* 将文件上传的信息取出赋给变量 */
            $name = $_FILES[$fileField]['name'];
            $tmp_name = $_FILES[$fileField]['tmp_name'];
            $size = $_FILES[$fileField]['size'];
            $error = $_FILES[$fileField]['error'];

            /* 如果是多个文件上传则$file["name"]会是一个数组 */
            if(is_Array($name)){          
                $errors=array();
                /*多个文件上传则循环处理 , 这个循环只有检查上传文件的作用,并没有真正上传 */
                for($i = 0; $i setFiles($name[$i],$tmp_name[$i],$size[$i],$error[$i] )) {
                        if(!$this->checkFileSize() || !$this->checkFileType()){
                            $errors[] = $this->getError();
                            $return=false;    
                        }
                    }else{
                        $errors[] = $this->getError();
                        $return=false;
                    }
                    /* 如果有问题,则重新初使化属性 */
                    if(!$return)                      
                        $this->setFiles();
                }
            
                if($return){
                    /* 存放所有上传后文件名的变量数组 */
                    $fileNames = array();               
                    /* 如果上传的多个文件都是合法的,则通过销魂循环向服务器上传文件 */
                    for($i = 0; $i setFiles($name[$i], $tmp_name[$i], $size[$i], $error[$i] )) {
                            $this->setNewFileName(); 
                            if(!$this->copyFile()){
                                $errors[] = $this->getError();
                                $return = false;
                            }
                            $fileNames[] = $this->newFileName;    
                        }                    
                    }
                    $this->newFileName = $fileNames;
                }
                $this->errorMess = $errors;
                return $return;
            /*上传单个文件处理方法*/
            } else {
                /* 设置文件信息 */
                if($this->setFiles($name,$tmp_name,$size,$error)) {
                    /* 上传之前先检查一下大小和类型 */
                    if($this->checkFileSize() && $this->checkFileType()){    
                        /* 为上传文件设置新文件名 */
                        $this->setNewFileName(); 
                        /* 上传文件   返回0为成功, 小于0都为错误 */
                        if($this->copyFile()){ 
                            return true;
                        }else{
                            $return=false;
                        }
                    }else{
                        $return=false;
                    }
                } else {
                    $return=false;    
                }
                //如果$return为false, 则出错,将错误信息保存在属性errorMess中
                if(!$return)
                    $this->errorMess=$this->getError();   

                return $return;
            }
        }

        /** 
         * 获取上传后的文件名称
         * @param    void     没有参数
         * @return    string     上传后,新文件的名称, 如果是多文件上传返回数组
         */
        public function getFileName(){
            return $this->newFileName;
        }

        /**
         * 上传失败后,调用该方法则返回,上传出错信息
         * @param    void     没有参数
         * @return    string      返回上传文件出错的信息报告,如果是多文件上传返回数组
         */
        public function getErrorMsg(){
            return $this->errorMess;
        }
        
        /* 设置上传出错信息 */
        private function getError() {
            $str = "上传文件{$this->originName}时出错 : ";
            switch ($this->errorNum) {
                case 4: $str .= "没有文件被上传"; break;
                case 3: $str .= "文件只有部分被上传"; break;
                case 2: $str .= "上传文件的大小超过了HTML表单中MAX_FILE_SIZE选项指定的值"; break;
                case 1: $str .= "上传的文件超过了php.ini中upload_max_filesize选项限制的值"; break;
                case -1: $str .= "未允许类型"; break;
                case -2: $str .= "文件过大,上传的文件不能超过{$this->maxsize}个字节"; break;
                case -3: $str .= "上传失败"; break;
                case -4: $str .= "建立存放上传文件目录失败,请重新指定上传目录"; break;
                case -5: $str .= "必须指定上传文件的路径"; break;
                default: $str .= "未知错误";
            }
            return $str.'
'; } /* 设置和$_FILES有关的内容 */ private function setFiles($name="", $tmp_name="", $size=0, $error=0) { $this->setOption('errorNum', $error); if($error) return false; $this->setOption('originName', $name); $this->setOption('tmpFileName',$tmp_name); $aryStr = explode(".", $name); $this->setOption('fileType', strtolower($aryStr[count($aryStr)-1])); $this->setOption('fileSize', $size); return true; } /* 为单个成员属性设置值 */ private function setOption($key, $val) { $this->$key = $val; } /* 设置上传后的文件名称 */ private function setNewFileName() { if ($this->israndname) { $this->setOption('newFileName', $this->proRandName()); } else{ $this->setOption('newFileName', $this->originName); } } /* 检查上传的文件是否是合法的类型 */ private function checkFileType() { if (in_array(strtolower($this->fileType), $this->allowtype)) { return true; }else { $this->setOption('errorNum', -1); return false; } } /* 检查上传的文件是否是允许的大小 */ private function checkFileSize() { if ($this->fileSize > $this->maxsize) { $this->setOption('errorNum', -2); return false; }else{ return true; } } /* 检查是否有存放上传文件的目录 */ private function checkFilePath() { if(empty($this->path)){ $this->setOption('errorNum', -5); return false; } if (!file_exists($this->path) || !is_writable($this->path)) { if (!@mkdir($this->path, 0755)) { $this->setOption('errorNum', -4); return false; } } return true; } /* 设置随机文件名 */ private function proRandName() { $fileName = date('YmdHis')."_".rand(100,999); return $fileName.'.'.$this->fileType; } /* 复制上传文件到指定的位置 */ private function copyFile() { if(!$this->errorNum) { $path = rtrim($this->path, '/').'/'; $path .= $this->newFileName; if (@move_uploaded_file($this->tmpFileName, $path)) { return true; }else{ $this->setOption('errorNum', -3); return false; } } else { return false; } } }

回复内容:

使用php的图片上传类进行图片上传,总是提示:上传文件时出错 : 未允许类型 。都是默认的配置

 $uploadImg= new FileUpload;
                  if($uploadImg ->upload("head")){
                    echo '
';
                    var_dump($uploadImg ->getFileName());
                    echo '
'; }else{ echo '
';
                    var_dump($uploadImg ->getErrorMsg());
                    echo '
'; }
                  setOption($key, $val);
            }
            return $this;
        }

        /**
         * 调用该方法上传文件
         * @param    string    $fileFile    上传文件的表单名称 
         * @return    bool                 如果上传成功返回数true 
         */
        
        function upload($fileField) {
            $return = true;
            /* 检查文件路径是滞合法 */
            if( !$this->checkFilePath() ) {                
                $this->errorMess = $this->getError();
                return false;
            }
            /* 将文件上传的信息取出赋给变量 */
            $name = $_FILES[$fileField]['name'];
            $tmp_name = $_FILES[$fileField]['tmp_name'];
            $size = $_FILES[$fileField]['size'];
            $error = $_FILES[$fileField]['error'];

            /* 如果是多个文件上传则$file["name"]会是一个数组 */
            if(is_Array($name)){          
                $errors=array();
                /*多个文件上传则循环处理 , 这个循环只有检查上传文件的作用,并没有真正上传 */
                for($i = 0; $i setFiles($name[$i],$tmp_name[$i],$size[$i],$error[$i] )) {
                        if(!$this->checkFileSize() || !$this->checkFileType()){
                            $errors[] = $this->getError();
                            $return=false;    
                        }
                    }else{
                        $errors[] = $this->getError();
                        $return=false;
                    }
                    /* 如果有问题,则重新初使化属性 */
                    if(!$return)                      
                        $this->setFiles();
                }
            
                if($return){
                    /* 存放所有上传后文件名的变量数组 */
                    $fileNames = array();               
                    /* 如果上传的多个文件都是合法的,则通过销魂循环向服务器上传文件 */
                    for($i = 0; $i setFiles($name[$i], $tmp_name[$i], $size[$i], $error[$i] )) {
                            $this->setNewFileName(); 
                            if(!$this->copyFile()){
                                $errors[] = $this->getError();
                                $return = false;
                            }
                            $fileNames[] = $this->newFileName;    
                        }                    
                    }
                    $this->newFileName = $fileNames;
                }
                $this->errorMess = $errors;
                return $return;
            /*上传单个文件处理方法*/
            } else {
                /* 设置文件信息 */
                if($this->setFiles($name,$tmp_name,$size,$error)) {
                    /* 上传之前先检查一下大小和类型 */
                    if($this->checkFileSize() && $this->checkFileType()){    
                        /* 为上传文件设置新文件名 */
                        $this->setNewFileName(); 
                        /* 上传文件   返回0为成功, 小于0都为错误 */
                        if($this->copyFile()){ 
                            return true;
                        }else{
                            $return=false;
                        }
                    }else{
                        $return=false;
                    }
                } else {
                    $return=false;    
                }
                //如果$return为false, 则出错,将错误信息保存在属性errorMess中
                if(!$return)
                    $this->errorMess=$this->getError();   

                return $return;
            }
        }

        /** 
         * 获取上传后的文件名称
         * @param    void     没有参数
         * @return    string     上传后,新文件的名称, 如果是多文件上传返回数组
         */
        public function getFileName(){
            return $this->newFileName;
        }

        /**
         * 上传失败后,调用该方法则返回,上传出错信息
         * @param    void     没有参数
         * @return    string      返回上传文件出错的信息报告,如果是多文件上传返回数组
         */
        public function getErrorMsg(){
            return $this->errorMess;
        }
        
        /* 设置上传出错信息 */
        private function getError() {
            $str = "上传文件{$this->originName}时出错 : ";
            switch ($this->errorNum) {
                case 4: $str .= "没有文件被上传"; break;
                case 3: $str .= "文件只有部分被上传"; break;
                case 2: $str .= "上传文件的大小超过了HTML表单中MAX_FILE_SIZE选项指定的值"; break;
                case 1: $str .= "上传的文件超过了php.ini中upload_max_filesize选项限制的值"; break;
                case -1: $str .= "未允许类型"; break;
                case -2: $str .= "文件过大,上传的文件不能超过{$this->maxsize}个字节"; break;
                case -3: $str .= "上传失败"; break;
                case -4: $str .= "建立存放上传文件目录失败,请重新指定上传目录"; break;
                case -5: $str .= "必须指定上传文件的路径"; break;
                default: $str .= "未知错误";
            }
            return $str.'
'; } /* 设置和$_FILES有关的内容 */ private function setFiles($name="", $tmp_name="", $size=0, $error=0) { $this->setOption('errorNum', $error); if($error) return false; $this->setOption('originName', $name); $this->setOption('tmpFileName',$tmp_name); $aryStr = explode(".", $name); $this->setOption('fileType', strtolower($aryStr[count($aryStr)-1])); $this->setOption('fileSize', $size); return true; } /* 为单个成员属性设置值 */ private function setOption($key, $val) { $this->$key = $val; } /* 设置上传后的文件名称 */ private function setNewFileName() { if ($this->israndname) { $this->setOption('newFileName', $this->proRandName()); } else{ $this->setOption('newFileName', $this->originName); } } /* 检查上传的文件是否是合法的类型 */ private function checkFileType() { if (in_array(strtolower($this->fileType), $this->allowtype)) { return true; }else { $this->setOption('errorNum', -1); return false; } } /* 检查上传的文件是否是允许的大小 */ private function checkFileSize() { if ($this->fileSize > $this->maxsize) { $this->setOption('errorNum', -2); return false; }else{ return true; } } /* 检查是否有存放上传文件的目录 */ private function checkFilePath() { if(empty($this->path)){ $this->setOption('errorNum', -5); return false; } if (!file_exists($this->path) || !is_writable($this->path)) { if (!@mkdir($this->path, 0755)) { $this->setOption('errorNum', -4); return false; } } return true; } /* 设置随机文件名 */ private function proRandName() { $fileName = date('YmdHis')."_".rand(100,999); return $fileName.'.'.$this->fileType; } /* 复制上传文件到指定的位置 */ private function copyFile() { if(!$this->errorNum) { $path = rtrim($this->path, '/').'/'; $path .= $this->newFileName; if (@move_uploaded_file($this->tmpFileName, $path)) { return true; }else{ $this->setOption('errorNum', -3); return false; } } else { return false; } } }

问题解决了。在from表单少写了一个data属性

你的$this->fileType 在哪赋值的

你在 new FileUpload 之后没有设置过所允许的文件类型(扩展名),所以默认的为 'jpg','jpeg','gif','png'.

然后你所反馈的出错信息为: 未允许类型, 在代码中对应的是 errorNum 等于 -1 的情况.

然后查找 设置为 -1 时的代码如下:

所以结合目前的代码,得出的结论为:你在上传的时候,上传的文件扩展名不在默认允许的范围内.
即: in_array(strtolower($this->fileType), $this->allowtype) 这个条件检测失败.


根据你提供的代码, 本地测试的效果如下:
上传时选择的文件为 QQ截图20151112092309.png

上传时选择的文件为 sina.html

附完整的测试代码:

setOption($key, $val);
            }
            return $this;
        }

        /**
         * 调用该方法上传文件
         * @param    string    $fileFile    上传文件的表单名称 
         * @return    bool                 如果上传成功返回数true 
         */
        
        function upload($fileField) {
            $return = true;
            /* 检查文件路径是滞合法 */
            if( !$this->checkFilePath() ) {                
                $this->errorMess = $this->getError();
                return false;
            }
            /* 将文件上传的信息取出赋给变量 */
            $name = $_FILES[$fileField]['name'];
            $tmp_name = $_FILES[$fileField]['tmp_name'];
            $size = $_FILES[$fileField]['size'];
            $error = $_FILES[$fileField]['error'];

            /* 如果是多个文件上传则$file["name"]会是一个数组 */
            if(is_Array($name)){          
                $errors=array();
                /*多个文件上传则循环处理 , 这个循环只有检查上传文件的作用,并没有真正上传 */
                for($i = 0; $i setFiles($name[$i],$tmp_name[$i],$size[$i],$error[$i] )) {
                        if(!$this->checkFileSize() || !$this->checkFileType()){
                            $errors[] = $this->getError();
                            $return=false;    
                        }
                    }else{
                        $errors[] = $this->getError();
                        $return=false;
                    }
                    /* 如果有问题,则重新初使化属性 */
                    if(!$return)                      
                        $this->setFiles();
                }
            
                if($return){
                    /* 存放所有上传后文件名的变量数组 */
                    $fileNames = array();               
                    /* 如果上传的多个文件都是合法的,则通过销魂循环向服务器上传文件 */
                    for($i = 0; $i setFiles($name[$i], $tmp_name[$i], $size[$i], $error[$i] )) {
                            $this->setNewFileName(); 
                            if(!$this->copyFile()){
                                $errors[] = $this->getError();
                                $return = false;
                            }
                            $fileNames[] = $this->newFileName;    
                        }                    
                    }
                    $this->newFileName = $fileNames;
                }
                $this->errorMess = $errors;
                return $return;
            /*上传单个文件处理方法*/
            } else {
                /* 设置文件信息 */
                if($this->setFiles($name,$tmp_name,$size,$error)) {
                    /* 上传之前先检查一下大小和类型 */
                    if($this->checkFileSize() && $this->checkFileType()){    
                        /* 为上传文件设置新文件名 */
                        $this->setNewFileName(); 
                        /* 上传文件   返回0为成功, 小于0都为错误 */
                        if($this->copyFile()){ 
                            return true;
                        }else{
                            $return=false;
                        }
                    }else{
                        $return=false;
                    }
                } else {
                    $return=false;    
                }
                //如果$return为false, 则出错,将错误信息保存在属性errorMess中
                if(!$return)
                    $this->errorMess=$this->getError();   

                return $return;
            }
        }

        /** 
         * 获取上传后的文件名称
         * @param    void     没有参数
         * @return    string     上传后,新文件的名称, 如果是多文件上传返回数组
         */
        public function getFileName(){
            return $this->newFileName;
        }

        /**
         * 上传失败后,调用该方法则返回,上传出错信息
         * @param    void     没有参数
         * @return    string      返回上传文件出错的信息报告,如果是多文件上传返回数组
         */
        public function getErrorMsg(){
            return $this->errorMess;
        }
        
        /* 设置上传出错信息 */
        private function getError() {
            $str = "上传文件{$this->originName}时出错 : ";
            switch ($this->errorNum) {
                case 4: $str .= "没有文件被上传"; break;
                case 3: $str .= "文件只有部分被上传"; break;
                case 2: $str .= "上传文件的大小超过了HTML表单中MAX_FILE_SIZE选项指定的值"; break;
                case 1: $str .= "上传的文件超过了php.ini中upload_max_filesize选项限制的值"; break;
                case -1: $str .= "未允许类型"; break;
                case -2: $str .= "文件过大,上传的文件不能超过{$this->maxsize}个字节"; break;
                case -3: $str .= "上传失败"; break;
                case -4: $str .= "建立存放上传文件目录失败,请重新指定上传目录"; break;
                case -5: $str .= "必须指定上传文件的路径"; break;
                default: $str .= "未知错误";
            }
            return $str.'
'; } /* 设置和$_FILES有关的内容 */ private function setFiles($name="", $tmp_name="", $size=0, $error=0) { $this->setOption('errorNum', $error); if($error) return false; $this->setOption('originName', $name); $this->setOption('tmpFileName',$tmp_name); $aryStr = explode(".", $name); $this->setOption('fileType', strtolower($aryStr[count($aryStr)-1])); $this->setOption('fileSize', $size); return true; } /* 为单个成员属性设置值 */ private function setOption($key, $val) { $this->$key = $val; } /* 设置上传后的文件名称 */ private function setNewFileName() { if ($this->israndname) { $this->setOption('newFileName', $this->proRandName()); } else{ $this->setOption('newFileName', $this->originName); } } /* 检查上传的文件是否是合法的类型 */ private function checkFileType() { if (in_array(strtolower($this->fileType), $this->allowtype)) { return true; }else { $this->setOption('errorNum', -1); return false; } } /* 检查上传的文件是否是允许的大小 */ private function checkFileSize() { if ($this->fileSize > $this->maxsize) { $this->setOption('errorNum', -2); return false; }else{ return true; } } /* 检查是否有存放上传文件的目录 */ private function checkFilePath() { if(empty($this->path)){ $this->setOption('errorNum', -5); return false; } if (!file_exists($this->path) || !is_writable($this->path)) { if (!@mkdir($this->path, 0755)) { $this->setOption('errorNum', -4); return false; } } return true; } /* 设置随机文件名 */ private function proRandName() { $fileName = date('YmdHis')."_".rand(100,999); return $fileName.'.'.$this->fileType; } /* 复制上传文件到指定的位置 */ private function copyFile() { if(!$this->errorNum) { $path = rtrim($this->path, '/').'/'; $path .= $this->newFileName; if (@move_uploaded_file($this->tmpFileName, $path)) { return true; }else{ $this->setOption('errorNum', -3); return false; } } else { return false; } } } if(isset($_GET['upload'])){ $uploadImg= new FileUpload; if($uploadImg->upload("head")){ echo '
';
        var_dump($uploadImg ->getFileName());
        echo '
'; }else{ echo '
';
        var_dump($uploadImg ->getErrorMsg());
        echo '
'; } } ?>

推荐阅读
  • 如何实现织梦DedeCms全站伪静态
    本文介绍了如何通过修改织梦DedeCms源代码来实现全站伪静态,以提高管理和SEO效果。全站伪静态可以避免重复URL的问题,同时通过使用mod_rewrite伪静态模块和.htaccess正则表达式,可以更好地适应搜索引擎的需求。文章还提到了一些相关的技术和工具,如Ubuntu、qt编程、tomcat端口、爬虫、php request根目录等。 ... [详细]
  • 本文介绍了在开发Android新闻App时,搭建本地服务器的步骤。通过使用XAMPP软件,可以一键式搭建起开发环境,包括Apache、MySQL、PHP、PERL。在本地服务器上新建数据库和表,并设置相应的属性。最后,给出了创建new表的SQL语句。这个教程适合初学者参考。 ... [详细]
  • Nginx使用AWStats日志分析的步骤及注意事项
    本文介绍了在Centos7操作系统上使用Nginx和AWStats进行日志分析的步骤和注意事项。通过AWStats可以统计网站的访问量、IP地址、操作系统、浏览器等信息,并提供精确到每月、每日、每小时的数据。在部署AWStats之前需要确认服务器上已经安装了Perl环境,并进行DNS解析。 ... [详细]
  • Monkey《大话移动——Android与iOS应用测试指南》的预购信息发布啦!
    Monkey《大话移动——Android与iOS应用测试指南》的预购信息已经发布,可以在京东和当当网进行预购。感谢几位大牛给出的书评,并呼吁大家的支持。明天京东的链接也将发布。 ... [详细]
  • 本文详细介绍了SQL日志收缩的方法,包括截断日志和删除不需要的旧日志记录。通过备份日志和使用DBCC SHRINKFILE命令可以实现日志的收缩。同时,还介绍了截断日志的原理和注意事项,包括不能截断事务日志的活动部分和MinLSN的确定方法。通过本文的方法,可以有效减小逻辑日志的大小,提高数据库的性能。 ... [详细]
  • 本文介绍了lua语言中闭包的特性及其在模式匹配、日期处理、编译和模块化等方面的应用。lua中的闭包是严格遵循词法定界的第一类值,函数可以作为变量自由传递,也可以作为参数传递给其他函数。这些特性使得lua语言具有极大的灵活性,为程序开发带来了便利。 ... [详细]
  • 本文介绍了Python高级网络编程及TCP/IP协议簇的OSI七层模型。首先简单介绍了七层模型的各层及其封装解封装过程。然后讨论了程序开发中涉及到的网络通信内容,主要包括TCP协议、UDP协议和IPV4协议。最后还介绍了socket编程、聊天socket实现、远程执行命令、上传文件、socketserver及其源码分析等相关内容。 ... [详细]
  • GetWindowLong函数
    今天在看一个代码里头写了GetWindowLong(hwnd,0),我当时就有点费解,靠,上网搜索函数原型说明,死活找不到第 ... [详细]
  • 基于layUI的图片上传前预览功能的2种实现方式
    本文介绍了基于layUI的图片上传前预览功能的两种实现方式:一种是使用blob+FileReader,另一种是使用layUI自带的参数。通过选择文件后点击文件名,在页面中间弹窗内预览图片。其中,layUI自带的参数实现了图片预览功能。该功能依赖于layUI的上传模块,并使用了blob和FileReader来读取本地文件并获取图像的base64编码。点击文件名时会执行See()函数。摘要长度为169字。 ... [详细]
  • 搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的详细步骤
    本文详细介绍了搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的步骤,包括环境说明、相关软件下载的地址以及所需的插件下载地址。 ... [详细]
  • 这是原文链接:sendingformdata许多情况下,我们使用表单发送数据到服务器。服务器处理数据并返回响应给用户。这看起来很简单,但是 ... [详细]
  • 本文介绍了使用AJAX的POST请求实现数据修改功能的方法。通过ajax-post技术,可以实现在输入某个id后,通过ajax技术调用post.jsp修改具有该id记录的姓名的值。文章还提到了AJAX的概念和作用,以及使用async参数和open()方法的注意事项。同时强调了不推荐使用async=false的情况,并解释了JavaScript等待服务器响应的机制。 ... [详细]
  • 本文介绍了使用Java实现大数乘法的分治算法,包括输入数据的处理、普通大数乘法的结果和Karatsuba大数乘法的结果。通过改变long类型可以适应不同范围的大数乘法计算。 ... [详细]
  • PHP设置MySQL字符集的方法及使用mysqli_set_charset函数
    本文介绍了PHP设置MySQL字符集的方法,详细介绍了使用mysqli_set_charset函数来规定与数据库服务器进行数据传送时要使用的字符集。通过示例代码演示了如何设置默认客户端字符集。 ... [详细]
  • HDU 2372 El Dorado(DP)的最长上升子序列长度求解方法
    本文介绍了解决HDU 2372 El Dorado问题的一种动态规划方法,通过循环k的方式求解最长上升子序列的长度。具体实现过程包括初始化dp数组、读取数列、计算最长上升子序列长度等步骤。 ... [详细]
author-avatar
vuvhvuvh
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有