使用codeigniter上传照片

时间:2009-07-23 09:13:06

标签: image codeigniter upload photo

我知道网上有很多教程,但我无法让它们发挥作用:(或许我的系统特别错误:/

我的Controller localpath是: /本地主机/ RL /应用/后端/控制器/

控制器:

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';

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

    if ( ! $this->upload->do_upload())
    {
        $error = array('error' => $this->upload->display_errors());

        $this->load->view('add_image', $error);
    }   
    else
    {
        $data = array('upload_data' => $this->upload->data());

        $data['id'] = $this->input->post['id_work'];
        $this->load->view('add_image', $data);
    }

}

My View localpath是: /本地主机/ RL /应用/后端/视图/

查看:

echo form_open_multipart('do_upload');  
    <ul class="frm">
        <li><label>File: *</label><input type="file" name="userfile" class="frmlmnt" size="50" /></li>      
        <li><label></label><input type="submit" class="btn" value="Upload" /></li>
    </ul>
 </form>        

也许我对路径

做错了

3 个答案:

答案 0 :(得分:1)

更改您的观点

echo form_open_multipart('backend/controllername/do_upload');  

并在controllers文件夹中创建后端文件夹。

答案 1 :(得分:0)

我不知道codeigniter是什么,但我看到了三件事:

  1. 您的功能没有传递给它。我不确定“this”变量是否可以处理,但也许您应该将上传URL传递给它?

  2. 您将config ['size']设置为'100'。我只能猜测该大小是指文件大小,但这个扩展名是否默认使用KB或MB?

  3. 你有这个:

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

  4. 这一点:

     $data = array('upload_data' => $this->upload->data());
    
     $data['id'] = $this->input->post['id_work'];
     $this->load->view('add_image', $data);
    

    哪部分实际上在上传?如果是第一个,它如何知道上传什么?我没有在任何配置数组中看到,并想象“上传”不是文件的地址......

    如果是第二部分,则将其设置为

    $this->load->view('add_image', $data);
    

    但你为什么要查看呢?你不上传吗?我假设视图是上传它的内容,但是你在上一部分中使用了相同的方法来处理错误。

答案 2 :(得分:0)

嘿,安东尼,谢谢你抽出时间写下这么详细的答案!它帮助我思考了一些部分:)

后来我发现了一个很棒的教程,它正是我需要的东西:)现在一切都很好。谢谢你的帮助;)

tut链接帮助了我: http://net.tutsplus.com/videos/screencasts/easy-development-with-codeigniter/#comment-83378