CodeIgniter框架之文件上传

CodeIgniter框架之文件上传

控制器代码:

CodeIgniter框架之文件上传

public function file(){
        $this->load->helper('url');
        $this->load->view('user/file');
    }

    public function uploadFile(){
        $this->load->helper('url');
        //手动创建文件上传目录
        $config['upload_path'] = './uploads/';//根目录下的uploads文件(即相对于入口文件)
        $config['allowed_types'] = 'gif|jpg|png';
        $config['max_size'] = '100';//允许上传文件大小的最大值(以K为单位)。该参数为0则不限制。
        $config['max_width']  = '1024';
        $config['max_height']  = '768';
        $config['file_name']  = uniqid();
        $this->load->library('upload', $config);
        $result = $this->upload->do_upload('pic');
        if(!$result){
            $error = array('error' => $this->upload->display_errors());
            $this->load->view('user/file', $error);
        }else{
            $data['data'] = array('upload_data' => $this->upload->data());
            $this->load->view('user/file', $data);
        }
    }
视图代码:

CodeIgniter框架之文件上传

<html>
    <form method="post" action="<?php echo site_url('user/uploadFile')?>" enctype="multipart/form-data">
        <input type="file" name="pic" id="">
        <input type="submit" name="submit" id="">
    </form>
    <?php error_reporting(0);echo "<pre>";print_r($data);echo "</pre>";?>
</html>

结果:

CodeIgniter框架之文件上传

CodeIgniter框架之文件上传

CodeIgniter框架之文件上传

ci 使用注意事项 之 文件上传类


这篇文章主要介绍了Codeigniter上传图片出现“You did not select a file to upload”的解决办法,需要的朋友可以参考下

Codeigniter自带的文件上传类非常好用,您可以设置指定上传某类型的文件及指定大小的文件。不过在使用的过程中需要注意一些小问题,否则会让你感到措手不及。

很多开发人员在使用Codeigniter的upload上传类时候,总是出现“You did not select a file to upload”错误,从代码里面看并没有什么错误,这是怎么回事呢?

1、文件域的名字被修改

方法一:

例如将Views文件的文件域的名字修改成了fileimg,而CI默认的文件域的名字是userfile,即形如:。这个是不能修改的,否则就会找不到上传文件。

原理就是:$this->upload->do_upload()默认上传文件的表单名为userfile。

方法二:

其实还有解决方法,如果文件域是其他名字。比如:

复制代码 代码如下:
$this->upload->do_upload();

改为

复制代码 代码如下:
$this->upload->do_upload(‘imgfile');

这样就可以了!

2、form表单类型

form表单需要使用form_open_multipart,形成HTML的时候会增加了一个属性enctype="multipart/form-data",这个其实是常识了,注意一下就好。