如何在codeigniter中创建文件上传器?

时间:2014-07-25 12:39:40

标签: codeigniter

我看到了CI文档来创建图像上传器。 这是我的Controller

<?php
class Upload extends CI_Controller {
function __construct()
{
    parent::__construct();
    $this->load->helper(array('form', 'url'));
}

function index()
{
    $this->load->view('upload_form', array('error' => ' ' ));
}

function do_upload()
{
    $this->load->helper(array('form', 'url'));
    $this->load->helper('url');
    $config['upload_path'] = './uploads/';
    $config['allowed_types'] = 'gif|jpg|png';
    $config['max_size'] = '0';
    $config['max_width']  = '0';
    $config['max_height']  = '0';

    $this->load->library('upload', $config);
    if ( ! $this->upload->do_upload())
    {
        echo $this->upload->display_error();
        return FALSE;
    }
    else
    {
        $data = $this->upload->data();
        return TRUE;
    }
}
}

这是我的View

<html>
<head>
    <title>Upload Form</title>
</head>
<body>
<form action="upload/do_upload" method="post" accept-charset="utf-8" enctype="multipart/form-data">
<input type="file" name="userfile" size="20" />

<br /><br />

<input type="submit" value="upload" />

</form>

</body>
</html>

但是当我上传图片时它没有上传它,$this->upload->display_error()什么都没显示(我的ci根文件夹中的上传文件夹也有777 permision,我正在使用wamp)

2 个答案:

答案 0 :(得分:1)

两个指针:

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

检查您使用的文件是否超过并且文件是否正在上传。

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

display_errorss一起使用。

<强>建议:

在表单的action属性中使用绝对URL,如:

action="<?php echo base_url() ?>upload/do_upload"

在您的函数do_upload()中,执行print_r($_FILEs),确认文件已正确上传且没有错误。

答案 1 :(得分:0)

我将名为function do_upload()的函数更改为function somethingelse()并解决了我的问题(因为我正在调用内置函数)