1

我不确定我在这里做错了什么。

控制器

function do_test()
{
    $config['upload_path'] = './images';
    $config['allowed_types'] = 'gif|jpg|png';
    $config['max_size'] = '10000';
    $config['max_width']  = '1024';
    $config['max_height']  = '768';
    $config['overwrite'] = TRUE;
    $confit['remove_spaces'] = TRUE;

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

    $this->form_validation->set_rules('file', 'trim|required|xss_clean');
    $test = $this->input->post('file');
    var_dump($test); //var dump return : string(21) "C:\fakepath\truth.jpg"

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

        echo "yes";
    }
}

形式

<?php echo form_open_multipart('home/do_test', array( 'id' => 'skill-form-test' ) );?>

    <input type="file" name="userfile" id="file" size="20" />

    <br /><br />

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

    </form>

jQuery

$('#skill-form-test').submit(function(e) {
    e.preventDefault();

    $.post(base_url + "index.php/home/do_test", { file : $("#file").val()  }, function(data)
        {
            }, "json");
    alert ( $("#file").val() + "-" + base_url ); //This alerts: C:\fakepath\truth.jpg-http://siteurl.com/
});
4

1 回答 1

-1

更新:该修复适用于 CodeIgniter v3,可能不适用于最新版本。

只是改变

if ( ! $this->upload->do_upload($test))

if ( ! $this->upload->do_upload('userfile'))

将解决问题。

希望这对您有所帮助。谢谢!!

于 2012-07-21T05:47:29.423 回答