【问题标题】:how to add new controller in codeigniter如何在codeigniter中添加新控制器
【发布时间】:2014-08-27 19:10:35
【问题描述】:

大家好,我在 codeigniter 中的上传图像功能遇到问题。我为上传功能创建了一个新控制器,因为当我将上传功能放入主控制器时,我不断出错。所以在这里upload.php 是我制作的新控制器吗

<?php

class Upload extends CI_Controller {

    function __construct()
    {
        parent::__construct();
        $this->load->helper(array('form', 'url'));
    }



    public function index()
    {
        $this->load->view('account', array('error' => ' ' ));
    }

    public function do_upload()
    {
        $config['upload_path'] = './uploads/';
        $config['allowed_types'] = 'gif|jpg|png';


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

        if ( ! $this->upload->do_upload())
        {
            $error = array('error'=>$this->upload->display_errors());
            $this->load->view('account', $error);
        }
        else
        {
            $data=array('upload_data'=>$this->upload->data());
            $data['img'] = base_url().'/uploads/';
            $this->load->view('success', $data);
        }
    }
}
?>

这是用户可以上传图片的 account.php

<html>
<body>    
<?php echo form_open_multipart('upload/do_upload');?>

    <input type="file" name="userfile" />

    <br /><br />

    <input type="submit" value="upload" />
</body>
</html>

我还在路由中声明了新的控制器

$default_controller = "admin";
$route['verifylogin'] = 'verifylogin';
$route['home'] = 'home';
$route['upload'] = 'upload';
$controller_exceptions = array('somethingpink','forums');

$route['default_controller'] = $default_controller;
$route["^((?!\b".implode('\b|\b', $controller_exceptions)."\b).*)$"] = $default_controller.'/$1';
$route['404_override'] = '';

问题是每次我上传图片时,我都会不断收到“404 page not found”错误..

它找不到这个 url http://localhost/picturecity/index.php/upload/do_upload ..picturecity 是我的项目的名称..这个 url 是由这个 form_open_multipart('upload/do_upload') 自动生成的; ?> ..我不知道是什么问题..是路由还是控制器失败..请帮助我..我需要明天通过我的项目..

我的 HTACCESS

RewriteEngine On
RewriteBase /picturecity
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]

【问题讨论】:

    标签: php codeigniter


    【解决方案1】:

    请试试这个。并确保您的上传文件夹具有 777 权限。

    public function do_upload()
        {
            $config['upload_path'] = './uploads/';
            $config['allowed_types'] = 'gif|jpg|png';
            $config['overwrite'] = 'TRUE';
    
            $this->load->library('upload');
            $this->upload->initialize($config);
    
            if ( ! $this->upload->do_upload())
            {
                $error = array('error'=>$this->upload->display_errors());
                $this->load->view('account', $error);
            }
            else
            {
                $data=array('upload_data'=>$this->upload->data());
                $data['img'] = base_url().'/uploads/';
                $this->load->view('success', $data);
            }
        }
    

    【讨论】:

    • 我尝试了你的代码,但是当我上传图片时它仍然显示 404 page not found.. 我认为我的问题出在链接上.. 但我无法解决它.. 我花了几个小时想办法,但我真的做不到
    • 上传文件夹的访问权限。意味着它应该具有读写权限。 777 代表完全访问权限。
    • 或者如果你分享你的 .htaccess 那么它也会很好
    • 我想我已经这样做了.. 我从 youtube 的教程中获得了这个上传功能,我做了教程并且它有效.. 但是当我将它传输到我的网站时它没有工作,它显示 404 错误..
    猜你喜欢
    • 2019-03-07
    • 1970-01-01
    • 1970-01-01
    • 2011-08-30
    • 1970-01-01
    • 1970-01-01
    • 2012-12-19
    • 1970-01-01
    • 2010-11-18
    相关资源
    最近更新 更多