【问题标题】:Codeigniter File Upload and Database Insert In 1 formCodeigniter 文件上传和数据库插入 1 种形式
【发布时间】:2017-04-25 16:21:14
【问题描述】:

所以我正在尝试插入数据库并上传文件。但是当我尝试提交时,它会返回一个服务器错误。

本地主机页面不工作

localhost 当前无法处理此请求。

HTTP 错误 500

我认为问题出在$this->upload->do_upload('userfile'),因为我试图从这部分注释掉并显示配置数组的回显并且没有错误,但是当我试图取消对此部分的注释时,错误显示。

控制器

public function add_now(){
    $this->load->library('form_validation');
    $this->form_validation->set_rules('Event_Name', 'Event Name', 'trim|strip_tags');
    $this->form_validation->set_rules('Event_Start', 'Start Date', 'trim|strip_tags');
    $this->form_validation->set_rules('Event_End', 'End Date', 'trim|strip_tags');
    $this->form_validation->set_rules('Event_Location', 'Location', 'trim|strip_tags');

    if($this->form_validation->run() == FALSE){
        $this->add();
    }
    else{   
        $query = $this->events_model->do_upload();
        if($query){
            $this->session->set_flashdata('success', 'Successful!');
            $this->index();
        }
        else{
            if(!$this->session->flashdata('upload_error')){
                $this->session->set_flashdata('failed', 'Failed!');
            }
            $this->add();
        }
    }
}

型号

public function do_upload(){
    
    $config['upload_path'] = './resources/images/events_photo/temp/';
    $config['allowed_types'] = 'gif|jpg|jpeg|png';
    $config['file_name'] = uniqid().'.jpeg';
    $config['overwrite'] = TRUE;


    $this->load->library('upload', $config);
    if(!$this->upload->do_upload('userfile')){
        $this->session->set_flashdata('upload_error', $this->upload->display_errors());
    }
}

查看

<?php echo form_open_multipart('events/add_now'); ?>
                <div class="panel-body">
                    <div class="row">
                        <div class="form-group">
                            <label class="control-label">Name</label>
                            <input type="text" class="form-control" name="Event_Name" value="<?php echo set_value('Event_Name'); ?>" placeholder="Enter Event Name">
                            <small class="text-danger"><?php echo form_error('Event_Name'); ?></small>
                        </div>
                    </div>
                    <div class="row">
                        <div class="col-sm-6">
                            <div class="form-group">
                                <label class="control-label">Start Date</label>
                                <input type="text" class="form-control" name="Event_Start" value="<?php echo set_value('Event_Start'); ?>" placeholder="Enter Start Date" onclick="this.type='datetime-local'" onblur="this.type='text'" min="<?php echo date('Y-m-d'); ?>">
                                <small class="text-danger"><?php echo form_error('Event_Start'); ?></small>
                            </div>
                        </div>

                        <div class="col-sm-6">
                            <div class="form-group">
                                <label class="control-label">End Date</label>
                                <input type="text" class="form-control" name="Event_End" value="<?php echo set_value('Event_End'); ?>" placeholder="Enter End Date" onclick="this.type='datetime-local'" onblur="this.type='text'" min="<?php echo date('Y-m-d'); ?>">
                                <small class="text-danger"><?php echo form_error('Event_End'); ?></small>
                            </div>
                        </div>
                    </div>
                    <div class="row">
                        <div class="col-sm-9">
                            <div class="form-group">
                                <label class="control-label">Location</label>
                                <input type="text" class="form-control" name="Event_Location" value="<?php echo set_value('Event_Location'); ?>" placeholder="Enter Event Location">
                                <small class="text-danger"><?php echo form_error('Event_Location'); ?></small>
                            </div>
                        </div>
                    </div>
                    <div class="row">
                        <textarea placeholder="Event Description" name="Event_Description" rows="10" class="form-control"></textarea>
                    </div>
                    <div class="row">
                        <div class="form-group">
                                <label class="control-label">Image Attachment (Optional)</label>
                                <input type="file" class="form-control" name="userfile" value="<?php echo set_value('userfile'); ?>" placeholder="Upload Image">
                                <?php if($this->session->flashdata('upload_error')): ?>
                                <small class="text-danger"><?php echo $this->session->flashdata('upload_error'); ?></small>
                            <?php endif; ?>
                            </div>
                    </div>
                </div>
                <div class="panel-footer text-right">
                    <button class="btn btn-success" type="submit">Submit</button>
                </div>
            </form>

【问题讨论】:

标签: php html codeigniter model-view-controller codeigniter-3


【解决方案1】:

首先在你的控制器中加载 url helper...

$this->load->helper('url');

然后设置上传文件路径为:

$config['upload_path'] = base_url('resources/images/events_photo/temp/');

试试吧。

那这两个函数呢

$this->add();

$this->success();

【讨论】:

  • 我试过做那个 base_url 但它在错误中说它不是一个有效的路径,所以我认为路径不是问题,代码也在我的另一个项目上工作。 add 和 success 是一个函数。
  • 你加载 URL 助手了吗?
猜你喜欢
  • 2012-07-08
  • 1970-01-01
  • 2014-11-04
  • 1970-01-01
  • 1970-01-01
  • 2013-07-13
  • 2022-01-16
  • 1970-01-01
  • 2021-09-14
相关资源
最近更新 更多