1

私は、redactorjsと呼ばれるwysiwygエディターでCodeigniterを使用しようとしています。基本的に、私が達成しようとしていることはここで見つけることができます:http: //imperavi.com/redactor/docs/images/

とても簡単に思えますが、動作させることができません。コンソールで500エラーが発生し続けます。これが私の現在のコーディングです:

Redactor js:

    <script type="text/javascript">
        $(document).ready(

        function() {
            $('#redactor_content').redactor({
                imageUpload: 'user/simple_upload'
            });
        });
    </script>

アップロードを処理するPHPクラス:

class User extends MX_Controller
{
    public function simple_upload()
    {
        $dir = './uploads/user_post_uploads/';

        $_FILES['file']['type'] = strtolower($_FILES['file']['type']);

        if ($_FILES['file']['type'] == 'image/png' || $_FILES['file']['type'] ==
            'image/jpg' || $_FILES['file']['type'] == 'image/gif' || $_FILES['file']['type'] ==
            'image/jpeg' || $_FILES['file']['type'] == 'image/pjpeg') {
            // setting file's mysterious name
            $filename = md5(date('YmdHis')) . '.jpg';
            $file = $dir . $filename;

            // copying
            copy($_FILES['file']['tmp_name'], $file);

            // displaying file
            $array = array('filelink' => base_url() . 'uploads/user_post_uploads/' . $filename);

            echo stripslashes(json_encode($array));

        }
    }
}

基本的に例と同様のコントローラー関数を作成し、それをredactor関数で参照します。動作していないようです...コンソールで次のエラーが発生し続けます:

POST http://localhost/appname/user/simple_upload 500 (Internal Server Error) - /improciety/user/simple_upload:1

Uncaught TypeError: Cannot read property '0' of null - redactor.js:3100

Redactor.uploadLoaded - redactor.js:3100

g - jquery.js:2

f.event.dispatch - jquery.js:3

h.handle.i - jquery.js:3
4

1 に答える 1

3

コントローラー内:

 function simple_upload()() {
   $config = array('upload_path' => './uploads/user_post_uploads/',
                'upload_url' => base_url()  . './uploads/user_post_uploads/',
                'allowed_types' => 'jpg|gif|png',
                'overwrite' => false,
                'max_size' => 512000,            
    );

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

    if ($this->upload->do_upload('file')) {
        $data = $this->upload->data();
        $array = array(
            'filelink' => $config['upload_url'] . $data['file_name']
        );            
        echo stripslashes(json_encode($array));
    } else {
        echo json_encode(array('error' => $this->upload->display_errors('', '')));
    }
}

ビューで:

<script type="text/javascript">
$(document).ready(function(){

    $('#redactor_content').redactor({
        imageUpload: "<?php echo base_url(); ?>user/simple_upload",

        imageUploadErrorCallback: function(json)
        {
            alert(json.error);
        }          
    });
}); 
</script>
于 2013-07-06T10:52:40.363 に答える