使用codeigniter上传图片

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用codeigniter上传图片相关的知识,希望对你有一定的参考价值。

使用codeigniter上传图像时遇到困难,它一直说我没有选择要上传的文件。

这是我的代码

function do_upload()
{
    $config['upload_path'] = './uploads/';
    $config['allowed_types'] = 'jpg|png';
    $config['max_size'] = '3000';
    $config['max_width']  = '1024';
    $config['max_height']  = '768';

    $this->load->library('upload', $config);

    if (!$this->upload->do_upload()){
        echo $this->upload->display_errors();
    }else{
        echo $this->upload->data();
    }
}

它甚至不会将图像发送到目录。

答案

试试这个功能:

function upload_done() {
 $config['overwrite'] = TRUE;
 $config['encrypt_name'] = FALSE;
 $config['remove_spaces'] = TRUE;
 $config['upload_path'] = '/var/www/uploadfiles/'; // use an absolute path
 $config['allowed_types'] = 'jpg|png';
 $config['max_size'] = '0'; 
 if ( ! is_dir($config['upload_path']) ) die("THE UPLOAD DIRECTORY DOES NOT EXIST");
 $this->load->library('upload',$config);
 if ( ! $this->upload->do_upload() )
 {
  echo "UPLOAD ERROR ! ".$this->upload->display_errors();
 } else {
  echo "THE IMAGE HAS BEEN UPLOADED : "; var_dump( $this->upload->data() );
 }
}
另一答案

确保你的html如下所示。

    <input type="file" name="userfile" size="20" />

Codeigniter的上传库假定名称为“userfile”

另一答案

您需要将调用更改为do_upload(),具体取决于您为表单输入提供的名称。假设您的HTML中包含以下代码:

<input type="file" name="image" />

你需要改变:

$this->upload->do_upload()

$this->upload->do_upload('image')

默认情况下,CodeIgniter假定名称为“userfile”。

以上是关于使用codeigniter上传图片的主要内容,如果未能解决你的问题,请参考以下文章

使用 CodeIgniter 上传多张图片

无法在 codeigniter 中上传图片,路径错误

如何在codeigniter中使用ajax上传图片?

Codeigniter 图片上传使用 jquery 和 ajax 错误 [重复]

Codeigniter 图片上传忽略允许的类型和文件大小

Codeigniter 上传图片 - 上传路径似乎无效