【问题标题】:photo upload with codeigniter使用 codeigniter 上传照片
【发布时间】:2010-11-13 07:45:30
【问题描述】:

我知道网上有很多教程,但我无法让它们发挥作用 :( 可能是我的系统出了问题:/

我的控制器本地路径是: /localhost/rl/applications/后端/控制器/

控制器:

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>        

也许我的路径有问题

【问题讨论】:

    标签: image codeigniter upload photo


    【解决方案1】:

    改变你的看法

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

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

    【讨论】:

      【解决方案2】:

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

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

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

      3. 你有这个:

        $this-&gt;load-&gt;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);
      

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

      【讨论】:

      • 一些回应,以防其他人发现此问题:此代码直接来自codeigniter.com/user_guide/libraries/file_uploading.html 1。它是 CodeIgniter (CI) 控制器中的一个函数,因此所有内容都由框架传递。 3. if 语句中的 $this->upload->do_upload() 执行实际上传。 upload_data() 只返回该上传的详细信息。因此,当他将 $data 发送到视图时,他并没有查看实际上传的内容,而只是查看了详细信息。
      【解决方案3】:

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

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-11-26
        • 1970-01-01
        • 2018-12-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-12-10
        • 1970-01-01
        相关资源
        最近更新 更多