在codeigniter中选择文件名后显示图像

时间:2015-07-27 08:17:47

标签: php codeigniter

控制器:

public function do_register()
{
    $path = $_FILES['image']['name'];
    $imgext=strtolower(strrchr($path,'.'));
    $imgname= $this->generateRandomString().$imgext;
    if($path!='')
    {
        $im= $this->config->item('base_url').'/uploads'.'/'.$imgname;
        $x=$this->do_upload($imgname);
        $data['img']=$im;
    }

    $this->search_model->register_user($data);
    $this->load->view('register_view');  
}

function generateRandomString()
{
    $characters = '0123456789abcdefghijklmnopqrstuvwxyz';
    $randomString = '';
    for ($i = 0; $i < 8; $i++)
    {
        $randomString .= $characters[rand(0, strlen($characters) - 1)];
    }
    return $randomString;
}

function do_upload($img)
{
    $config['upload_path'] = './uploads/';
    $config['allowed_types'] = 'gif|jpg|png';
    $config['max_size'] = '575000';
    $config['file_name'] = $img;
    $this->load->library('upload',$config);
    if ( ! $this->upload->do_upload('image'))
    {
        $error = array('error' => $this->upload->display_errors());
    }
    else
    {
        $data = array('upload_data' => $this->upload->data());
        return $data;
    }
    return;
}

这是图像上传的控制器。当我选择上传的图像时,我选择文件名时不会显示图像?这是什么解决方案?选择文件名后如何显示图像?请提供相应的代码吗?

2 个答案:

答案 0 :(得分:0)

您可以使用javascript查看this。我希望它会对你有所帮助。

答案 1 :(得分:0)

对于上传前的图片预览,请检查此FIDDLE

限制上传大小的代码。

  $(document).on('change','.coverimage',function(){
      files = this.files;
      size = files[0].size;
      //max size 50kb => 50*1000
      if( size > 1000141){
         alert('Please upload less than 1mb file');
         return false;
      }
      return true;
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form role="form" method="post" enctype="multipart/form-data">
   <div class="form-group">
      <label for="file">Choose your Image: </label>
      <input type="file"  class="coverimage" id="file1" name="file[]" multiple>
   </div>
   <button id='submit_btn' class="btn btn-default">upload</button>
</form>