0

我的代码如下

看法

<form id="form1" name="form1" method="post" enctype="multipart/form-data" action="<?php echo base_url();?>index.php/setup_con/add_user_info">
Picture <input name="userfile" type="file" />
Name <input name="name" type="text" />
<input name="" type="submit" />
</form>

控制器

$config['upload_path'] = './uploads/';
$config['allowed_types'] = 'gif|jpg|png';
$config['max_size'] = '800';
$config['max_width']  = '184';
$config['max_height']  = '142;

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

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

$data = array('upload_data' => $this->upload->data());
$img =  $data ['upload_data']['file_name'];

$data = $this->setup_model->add_user_info($img);
}

模型

$name = $this->input->post('name');
$img = $img
$data = array (
     'img' =>$img,
     'name' =>$name
    );
$this->db->insert('user',$data);

通常我可以做到

基本上,我想首先在不提交的情况下进行自动图像上传(可能是通过 ajax)并立即显示,然后我将提交然后将数据插入到用户表中,并带有图像名称和名称。

请帮助我如何解决这个问题

4

1 回答 1

2

抱歉,如果我误读了您的问题,但这听起来像是在上传之前询问如何预览图像的很长的路要走。这是在进行任何上传之前执行此操作的一种方法,然后您可以在提交时将实际图像与数据库内容一起上传。

HTML

 <img id="preview_img" src="" />
 <input id='img_upload' type="file" name="userfile" />

查询

$('body').on("change", "#img_upload", function(event) {
    if (this.files && this.files[0]) {
        var reader = new FileReader();

        reader.onload = function(e) {
        $('#preview_img').attr('src', e.target.result);
        }
        reader.readAsDataURL(this.files[0]);
    }
});
于 2013-01-05T19:22:26.947 回答