【问题标题】:Code works for image but not for other files in codeigniter代码适用于图像,但不适用于 codeigniter 中的其他文件
【发布时间】:2016-07-27 12:49:51
【问题描述】:

我成功地将图像上传到文件夹并将其名称上传到数据库,但相同的代码不会上传文件夹中的文件,而是上传数据库中的名称。以下是将音频文件上传到我的文件夹音乐的代码。

控制器功能

public function add_audio(){

        $config['upload_path'] = './musics/';
        $config['allowed_types'] = 'mp3';
        $config['max_size'] = '100000000000000';

        $this->load->library('upload',$config);
        chmod('musics/', 0777);
        $this->upload->do_upload('output');

        $data['audio'] = $_FILES['output']['name'];
        $this->load->model('main');
        $query = $this->main->insert('audio',$data);            

        if($query = TRUE){

            $this->load->view('admin/success');
        }
        else{

            redirect($_SERVER['HTTP_REFERER']);
        }   //end else
    }   //end function

【问题讨论】:

  • if($query = TRUE) 应该是 == 不是单个等号..您是在比较它而不是为 $query 赋值。使用 ==
  • 尝试从$this->upload->do_upload('output');中删除'output'
  • 我已经完成了 == 并删除了“输出”……但文件仍然没有获取文件夹……只有它的名称被上传到数据库……我不知道出了什么问题,这让我很沮丧......@LeeBalino

标签: php image file-upload codeigniter-3 sql-update


【解决方案1】:

尝试从$this->upload->do_upload('output'); 中删除'output'

并尝试用以下代码替换您的部分代码:

if ( ! $this->upload->do_upload())
{
    $data['error'] = $this->upload->display_errors();    
    //line of codes that displays if there are errors
}
else
{
    $data['audio'] = $_FILES['output']['name'];

    $this->load->model('main');
    $query = $this->main->insert('audio',$data);

    if($query == TRUE){
        $this->load->view('admin/success');
    }
}

【讨论】:

  • 我用你的代码替换了我的代码,但它显示了空白页......没有显示@lee balino
  • 试试printr($data['error'])。让我们看看是什么错误
  • 它说您没有选择要上传的文件...@Lee Balino
  • 我发现 php.ini 文件中的问题是什么,它没有设置为最大上传限制...无论如何感谢您的回复...
  • @sudeepacharya NP 兄弟
【解决方案2】:

在上面的代码中你已经指定了

if($query = TRUE){
    $this->load->view('admin/success');
}

由于是比较而不是赋值,所以应该更正为

if($query == TRUE){
    $this->load->view('admin/success');
}

【讨论】:

    【解决方案3】:

    通过其他文件格式检查是否获取:

    print_r($_FILES);

    并且您在 if 条件下使用 = 而不是 ==

    试试这个:

        if($query = TRUE){
    
                 $this->load->view('admin/success');
        }
    

    【讨论】:

      猜你喜欢
      • 2019-12-28
      • 2021-10-09
      • 1970-01-01
      • 2012-07-28
      • 1970-01-01
      • 2017-08-24
      • 1970-01-01
      • 2021-10-17
      • 2012-02-07
      相关资源
      最近更新 更多