0

これは、コードイグナイター コードで ajaxfileupload と Jquery を使用して画像をアップロードするコードです。しかし、codeigniter コードはログ ファイルにエラーを出力しています。そのアップロード。しかし、jquery と ajaxfileupload スクリプトを使用せずに同じコードをテストしたとき。

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js"></script>
<script src="//localhost/AjaxFileUploader/ajaxfileupload.js"></script>    
<script type="text/javascript">        
    $(document).ready(function () {
        $("#form").change(function () {
            $("#upload").html('<img src="loader.gif"/>');
            $.ajaxFileUpload({
                url: 'http://localhost/ci/index.php/upload/do_upload',
                secureuri: false,
                fileElementId: 'userfile',
                dataType: 'json',
                success: function (data, status) {
                    if (typeof (data.error) != 'undefined') {
                        if (data.error != '') {
                            alert(data.error);
                        } else {
                            alert(data.msg);
                        }
                    }
                },
                error: function (data, status, e) {
                    alert(e);
                }
            });
        });
    });
</script></head>
<body>
    <form action="http://localhost/ci/index.php/upload/do_upload" method="post" accept-charset="utf-8" enctype="multipart/form-data">
        <input type="file" name="userfile" size="20" id="form" />
        <br /><br />
        <input type="submit" value="upload" id="submit" />
        <span id="upload"></span>
    </form></body>
</html>

私のコードイグナイターコードは

function do_upload()
    {
        $config['upload_path'] = 'c:\upload';
        $config['allowed_types'] = 'gif|jpg|png';
        $config['max_size'] = '100';
        $config['max_width']  = '1024';
        $config['max_height']  = '768';
         $config['encrypt_name'] = TRUE;

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

        if ( ! $this->upload->do_upload())
        {
            $error = array('error' => $this->upload->display_errors());

            $this->load->view('upload_form', $error);
        }
        else
        {
            $data = array('upload_data' => $this->upload->data());

            $this->load->view('upload_success', $data);
        }
    }

しかし、codeigniter はファイルをアップロードしていません。「アップロードするファイルが選択されていません」などのエラーがログ ファイルに表示されます。

4

1 に答える 1

0

この行を変更する必要があると思います:

if (!$this->upload->do_upload('userfile'))
{
 ...
于 2012-05-07T19:04:50.237 に答える