如何在CodeIgniter中上传图像?

dar*_*han 18 codeigniter file-upload

在视野中

 <?php echo form_open_multipart('welcome/do_upload');?>
 <input type="file" name="userfile" size="20" />
Run Code Online (Sandbox Code Playgroud)

在控制器中

function do_upload()
{
    $config['upload_path'] = './uploads/';
    $config['allowed_types'] = 'gif|jpg|png';
    $config['max_size'] = '100';
    $config['max_width']  = '1024';
    $config['max_height']  = '768';
    $config['overwrite'] = TRUE;
    $config['encrypt_name'] = FALSE;
    $config['remove_spaces'] = TRUE;
    if ( ! is_dir($config['upload_path']) ) die("THE UPLOAD DIRECTORY DOES NOT EXIST");
    $this->load->library('upload', $config);
    if ( ! $this->upload->do_upload('userfile')) {
        echo 'error';
    } else {

        return array('upload_data' => $this->upload->data());
    }
}
Run Code Online (Sandbox Code Playgroud)

我这样称呼这个函数

 $this->data['data'] = $this->do_upload();
Run Code Online (Sandbox Code Playgroud)

并查看此图像:

<ul>
<?php foreach ($data['upload_data'] as $item => $value):?>
<li><?php echo $item;?>: <?php echo $value;?></li>
<?php endforeach; ?>
</ul>
Run Code Online (Sandbox Code Playgroud)

我不知道错误是什么.

Has*_*ami 16

似乎问题是你发送表单请求welcome/do_upload,并Welcome::do_upload()在另一个方法中调用该方法$this->do_upload().

因此,当您$this->do_upload();第二个方法中调用时,$_FILES数组将为.

这就是var_dump($data['upload_data']);回归的原因NULL.

如果要从中上传文件welcome/second_method,请将表单请求发送到您调用的welcome/second_method$this->do_upload();.

然后改变形式的辅助功能(内视图)如下1:

// Change the 'second_method' to your method name
echo form_open_multipart('welcome/second_method');
Run Code Online (Sandbox Code Playgroud)

使用CodeIgniter进行文件上传

CodeIgniter 通过使用文件上传库很好地记录了上传过程.

您可以查看用户指南中的示例代码; 此外,为了更好地理解上传配置,请查看手册页末尾的配置项说明部分.

还有一些关于在CodeIgniter中上传文件的文章/示例,您可能需要考虑:

正如旁注:在使用CodeIgniter示例代码之前,请确保已加载urlform辅助函数:

// Load the helper files within the Controller
$this->load->helper('form');
$this->load->helper('url');
Run Code Online (Sandbox Code Playgroud)

1.表单必须是"multipart"类型才能进行文件上传.因此你应该使用form_open_multipart()返回的辅助函数:
<form method="post" action="controller/method" enctype="multipart/form-data" />


Hir*_*ana 10

在codeigniter中上传简单图像

查找以下代码以便轻松上传图片

public function doupload()
     {
        $upload_path="https://localhost/project/profile"  
        $uid='10'; //creare seperate folder for each user 
        $upPath=upload_path."/".$uid;
        if(!file_exists($upPath)) 
        {
                   mkdir($upPath, 0777, true);
        }
        $config = array(
        'upload_path' => $upPath,
        'allowed_types' => "gif|jpg|png|jpeg",
        'overwrite' => TRUE,
        'max_size' => "2048000", 
        'max_height' => "768",
        'max_width' => "1024"
        );
        $this->load->library('upload', $config);
        if(!$this->upload->do_upload('userpic'))
        { 
            $data['imageError'] =  $this->upload->display_errors();

        }
        else
        {
            $imageDetailArray = $this->upload->data();
            $image =  $imageDetailArray['file_name'];
        }

     }
Run Code Online (Sandbox Code Playgroud)

希望这可以帮助您上传图像

点击了解更多