0

画像を codeigniter コントローラーに正常にアップロードできます。

class Upload extends CI_Controller {

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

    function do_upload($folder)
    {
        $config['upload_path'] = './userdata/'. $folder . '/';
        $config['allowed_types'] = 'gif|jpg|png|txt';
        $config['max_size'] = '1000';
        $config['max_width']  = '5024';
        $config['max_height']  = '5768';

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

        if ( ! $this->upload->do_upload())
        {
            $error = array('error' => $this->upload->display_errors()); 
            echo $this->upload->display_errors();
        }
        else
        {
            $data = array('upload_data' => $this->upload->data());
        }
    }
}

画像は私のJSから次のようにアップロードされます:

var formData = new FormData();
formData.append('userfile', this.image);
$.ajax({
    url: 'upload/do_upload/atlas',
    data: formData,
    processData: false,
    contentType: false,
    type: 'POST',
    success: function(data){

    }
});

this.image画像ファイルはどこにありますか。これで問題なく動作するようになったので、コントローラーとコードが動作することがわかりました。

しかし、JSON 文字列で同じことを試みると、ファイルはアップロードされません。

this.json = JSON.stringify(parsedJSON, null, 4);

var formData = new FormData();
formData.append('userfile', this.json);
$.ajax({
    url: 'upload/do_upload/json',
    data: formData,
    processData: false,
    contentType: false,
    type: 'POST',
    success: function(data){

    }
});

これがJson文字列ではなく画像で機能する理由を知っている人はいますか?

4

1 に答える 1