Codeigniter'您没有选择要上传的文件。'
问题描述:
我试图上传一个使用codeigniter的文件,无论我尝试了什么,我都会收到错误消息,说明我实际上没有选择文件。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仅仅是一个笨形式
<?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函数,但似乎没有任何工作,我即将把我的头发拉出来。任何帮助表示赞赏!
答
上传文件时,您需要使用form_open_multipart()
而不是form_open()
。
答
您必须使用 <?php echo form_open_multipart(path); ?>
,因为如果我们在表单中写入,我们会得到控制器中的$ _FILES。
添加后,如果你print_r($ _文件),那么你会得到数组。
当我们做与图片上传或验证相关的工作时有必要
即使我没有上传多个文件?这实际上并没有工作......它仍然给我同样的错误信息 – zazvorniki 2014-10-05 23:54:17
@zazvorniki Yup。多部分与文件数量无关,并且根本无需上传任何文件。从文档(https://ellislab.com/codeigniter/user-guide/libraries/file_uploading.html):'默认情况下,上传例程期望文件来自称为userfile的表单字段,并且表单必须是“ multipart type' – 2014-10-06 00:08:05
奇怪的是,它仍然无法正常工作,您是否在$ _FILES中看到它? – 2014-10-06 00:09:51