为了账号安全,请及时绑定邮箱和手机立即绑定

Codeigniter 文件上传许可仅适用于图像,不适用于其他人

Codeigniter 文件上传许可仅适用于图像,不适用于其他人

PHP
烙印99 2021-12-03 16:36:19
我必须连续上传文件,首先是 gif|jpg|jpeg|png|svg 和第二个 psd|rar|zip|doc|word|txt|xlsx|pdf 第一个工作正常,我可以上传所有图像,但第二个,我无法上传任何这些类型,但是当我尝试在第二个片段上上传图像时,它可以工作。if (isset($_FILES['content_images']['name'])) {    $count_files = count($_FILES['content_images']['name']);    for ($i = 0; $i < $count_files; $i++) {        $_FILES['image']['name'] = $_FILES['content_images']['name'][$i];        $_FILES['image']['type'] = $_FILES['content_images']['type'][$i];        $_FILES['image']['tmp_name'] = $_FILES['content_images']['tmp_name'][$i];        $_FILES['image']['error'] = $_FILES['content_images']['error'][$i];        $_FILES['image']['size'] = $_FILES['content_images']['size'][$i];        $config_images['upload_path'] = "./public/site/images/contents";        $config_images['allowed_types'] = 'gif|jpg|jpeg|png|svg';        $config_images['max_size'] = 5000;        $config_images['max_width'] = 7680;        $config_images['max_height'] = 4320;        $this->load->library("upload", $config_images);        if (!$this->upload->do_upload('image')) {            echo $this->upload->display_errors();            exit;        } else {            $data = $this->upload->data();            $path_images[] = "public/site/images/contents/".$data['file_name'];        }    }}
查看完整描述

1 回答

?
阿波罗的战车

TA贡献1862条经验 获得超6个赞

我找到了解决方案寻求帮助:您应该只在顶部加载库 1 次,然后您应该在“if 条件”中对其进行初始化。当您在第一个条件中加载上传库和配置数组时,当您传递到第二个条件时,上传库已经加载并使用第一个条件的配置数组。


$this->load->library("upload");

            if(isset($_FILES['content_images']['name'])){

                $count_files=count($_FILES['content_images']['name']);

                for($i = 0;$i<$count_files;$i++){

                    $_FILES['image']['name'] = $_FILES['content_images']['name'][$i];

                    $_FILES['image']['type'] = $_FILES['content_images']['type'][$i];

                    $_FILES['image']['tmp_name'] = $_FILES['content_images']['tmp_name'][$i];

                    $_FILES['image']['error'] = $_FILES['content_images']['error'][$i];

                    $_FILES['image']['size'] = $_FILES['content_images']['size'][$i];

                    $config_images['upload_path'] = "./public/site/images/contents";

                    $config_images['allowed_types'] = 'gif|jpg|jpeg|png|svg';

                    $config_images['max_size'] = 5000;

                    $config_images['max_width'] = 7680;

                    $config_images['max_height'] = 4320;

                    $this->upload->initialize($config_images);

                    if(!$this->upload->do_upload('image')){

                        echo $this->upload->display_errors();

                        exit;

                    }else{

                        $data=$this->upload->data();

                        $path_images[] = "public/site/images/contents/".$data['file_name'];

                    }

                }

            }

            if(isset($_FILES['content_files']['name'])){

                $count_files=count($_FILES['content_files']['name']);

                for($i = 0;$i<$count_files;$i++){

                    $_FILES['file']['name'] = $_FILES['content_files']['name'][$i];

                    $_FILES['file']['type'] = $_FILES['content_files']['type'][$i];

                    $_FILES['file']['tmp_name'] = $_FILES['content_files']['tmp_name'][$i];

                    $_FILES['file']['error'] = $_FILES['content_files']['error'][$i];

                    $_FILES['file']['size'] = $_FILES['content_files']['size'][$i];

                    $config_files['upload_path'] = "./public/site/files/contents";

                    $config_files['allowed_types'] = 'psd|rar|zip|doc|word|txt|xlsx|pdf';

                    $config_files['max_size'] = 5000;

                    $config_files['max_width'] = 7680;

                    $config_files['max_height'] = 4320;

                    $this->upload->initialize($config_files);

                    if(!$this->upload->do_upload('file')){

                        foreach($path_images as $p){

                            unlink($p);

                        }

                        echo $this->upload->display_errors();

                        exit;

                    }else{

                        $data=$this->upload->data();

                        $path_files[] = "public/site/files/contents/".$data['file_name'];

                    }

                }

            }


查看完整回答
反对 回复 2021-12-03
  • 1 回答
  • 0 关注
  • 177 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信