我正在尝试使用codeigniter上传文件,无论我尝试了什么,我都会收到错误消息,说明我实际上没有选择文件。
我的控制器看起来像这样
public function editHeader()
{
$this->require_auth();
$config['upload_path'] = './files/';
$config['allowed_types'] = 'gif|jpg|png';
$config['max_size'] = '1000KB';
$config['max_width'] = '1024';
$config['max_height'] = '768';
$this->load->library('upload', $config);
if ( ! $this->upload->do_upload('userfile'))
{
$error = array('error' => $this->upload->display_errors());
var_dump($error);
}
else
{
$data = array('upload_data' => $this->upload->data());
echo('yeah!');
}
}
我的html只是一个codeigniter表单
<?foreach($header as $row) :?>
<?=form_open_multipart('admin/editHeader');?>
<input class="waitForLoad fadeInDown" type="file" name="userfile" />
<input type="submit" name="submit" value="Change" class="btn btn-success pull-right" />
</form>
<?endforeach;?>
我尝试了普通的解决方案,例如提升max_size
以及将上传名称放在do_upload函数中,但似乎没有任何效果,我即将解决问题。任何帮助表示赞赏!
答案 0 :(得分:0)
上传文件时,您需要使用form_open_multipart()
代替form_open()
。
答案 1 :(得分:0)
你必须使用
<?php echo form_open_multipart(path); ?>
因为如果我们在表单中写入,我们会在控制器中获得$ _FILES。
添加后,如果你打印__($ _ FILES),那么你将得到数组。
当我们完成与图片上传或验证码相关的工作时,这是必要的