控制器代码:
public function file(){
$this->load->helper('url');
$this->load->view('user/file');
}
public function uploadFile(){
$this->load->helper('url');
//手动创建文件上传目录
$config['upload_path'] = './uploads/';//根目录下的uploads文件(即相对于入口文件)
$config['allowed_types'] = 'gif|jpg|png';
$config['max_size'] = '100';//允许上传文件大小的最大值(以K为单位)。该参数为0则不限制。
$config['max_width'] = '1024';
$config['max_height'] = '768';
$config['file_name'] = uniqid();
$this->load->library('upload', $config);
$result = $this->upload->do_upload('pic');
if(!$result){
$error = array('error' => $this->upload->display_errors());
$this->load->view('user/file', $error);
}else{
$data['data'] = array('upload_data' => $this->upload->data());
$this->load->view('user/file', $data);
}
$this->load->helper('url');
$this->load->view('user/file');
}
public function uploadFile(){
$this->load->helper('url');
//手动创建文件上传目录
$config['upload_path'] = './uploads/';//根目录下的uploads文件(即相对于入口文件)
$config['allowed_types'] = 'gif|jpg|png';
$config['max_size'] = '100';//允许上传文件大小的最大值(以K为单位)。该参数为0则不限制。
$config['max_width'] = '1024';
$config['max_height'] = '768';
$config['file_name'] = uniqid();
$this->load->library('upload', $config);
$result = $this->upload->do_upload('pic');
if(!$result){
$error = array('error' => $this->upload->display_errors());
$this->load->view('user/file', $error);
}else{
$data['data'] = array('upload_data' => $this->upload->data());
$this->load->view('user/file', $data);
}
}
视图代码:
<html>
<form method="post" action="<?php echo site_url('user/uploadFile')?>" enctype="multipart/form-data">
<input type="file" name="pic" id="">
<input type="submit" name="submit" id="">
</form>
<?php error_reporting(0);echo "<pre>";print_r($data);echo "</pre>";?>
<form method="post" action="<?php echo site_url('user/uploadFile')?>" enctype="multipart/form-data">
<input type="file" name="pic" id="">
<input type="submit" name="submit" id="">
</form>
<?php error_reporting(0);echo "<pre>";print_r($data);echo "</pre>";?>
</html>
结果:
ci 使用注意事项 之 文件上传类
|
|
这篇文章主要介绍了Codeigniter上传图片出现“You did not select a file to upload”的解决办法,需要的朋友可以参考下
Codeigniter自带的文件上传类非常好用,您可以设置指定上传某类型的文件及指定大小的文件。不过在使用的过程中需要注意一些小问题,否则会让你感到措手不及。
很多开发人员在使用Codeigniter的upload上传类时候,总是出现“You did not select a file to upload”错误,从代码里面看并没有什么错误,这是怎么回事呢?
1、文件域的名字被修改
方法一:
例如将Views文件的文件域的名字修改成了fileimg,而CI默认的文件域的名字是userfile,即形如:。这个是不能修改的,否则就会找不到上传文件。
原理就是:$this->upload->do_upload()默认上传文件的表单名为userfile。
方法二:
其实还有解决方法,如果文件域是其他名字。比如:
将
复制代码 代码如下:
$this->upload->do_upload();
改为
复制代码 代码如下:
$this->upload->do_upload(‘imgfile');
这样就可以了!
2、form表单类型
form表单需要使用form_open_multipart,形成HTML的时候会增加了一个属性enctype="multipart/form-data",这个其实是常识了,注意一下就好。