0

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

我的控制器本地路径是:/localhost/rl/applications/backend/controller/

控制器:

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);
    }

}

我的视图本地路径是:/localhost/rl/applications/backend/view/

看法:

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>        

也许我在路径上做错了什么

4

3 回答 3

1

改变你的看法

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

并在控制器文件夹中创建后端文件夹。

于 2012-06-15T09:42:59.800 回答
0

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

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

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

  3. 你有这个位:

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

这一点:

 $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);

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

于 2009-07-23T09:23:49.840 回答
0

嘿安东尼,感谢您抽出时间写出如此详细的答案!它帮助我思考了一些部分:)

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

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

于 2009-07-23T11:33:25.913 回答