如何使用图像名称将数据插入到mysql数据库中,这将是自动上传图像而无需提交和即时显示

时间:2013-01-05 08:49:13

标签: ajax codeigniter

我的代码在

下面

查看

<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)和 立即显示然后我将提交然后插入数据到用户表与图像名称和名称。

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

1 个答案:

答案 0 :(得分:2)

很抱歉,如果我误解了你的问题,但这听起来像是一个很长的方式,询问如何在上传之前预览图像。这是在您进行任何上传之前执行此操作的方法,然后您可以将所有图像上传与数据库内容一起上传。

HTML

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

<强> JQUERY

$('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]);
    }
});