控制器:
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;
}
这是用于上传图像的控制器。当我选择要上传的图像时,在选择文件名时不显示图像?解决这个问题的办法是什么?选择文件名后如何显示图像?请为此提供代码?
对于上传前的图像预览,请检查此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>
您可以使用javascript来完成此操作。我希望它能帮助你。