在视野中
<?php echo form_open_multipart('welcome/do_upload');?>
<input type="file" name="userfile" size="20" />
在控制器中
function do_upload()
{
$config['upload_path'] = './uploads/';
$config['allowed_types'] = 'gif|jpg|png';
$config['max_size'] = '100';
$config['max_width'] = '1024';
$config['max_height'] = '768';
$config['overwrite'] = TRUE;
$config['encrypt_name'] = FALSE;
$config['remove_spaces'] = TRUE;
if ( ! is_dir($config['upload_path']) ) die("THE UPLOAD DIRECTORY DOES NOT EXIST");
$this->load->library('upload', $config);
if ( ! $this->upload->do_upload('userfile')) {
echo 'error';
} else {
return array('upload_data' => $this->upload->data());
}
}
我这样调用这个函数
$this->data['data'] = $this->do_upload();
并查看此图像:
<ul>
<?php foreach ($data['upload_data'] as $item => $value):?>
<li><?php echo $item;?>: <?php echo $value;?></li>
<?php endforeach; ?>
</ul>
型
我不知道哪里出错了。
7条答案
按热度按时间332nm8kg1#
问题似乎是您将表单请求发送到
welcome/do_upload
,然后通过$this->do_upload()
调用另一个表单中的Welcome::do_upload()
方法。因此,当您在第二个方法中调用
$this->do_upload();
时,$_FILES
数组将为空。这就是
var_dump($data['upload_data']);
返回NULL
的原因。如果要从
welcome/second_method
上载文件,请将表单请求发送到welcome/second_method,在此调用$this->do_upload();
。然后按如下所示更改表单助手功能(在 * 视图 * 中)1:
使用CodeIgniter上载文件
CodeIgniter**has documented the Uploading process**非常好,通过使用文件上传库。
您可以查看用户指南中的示例代码;此外,为了更好地理解 * 上载配置 *,请查看手册页末尾的 * 配置项说明 * 部分。
还有一些关于CodeIgniter中文件上传的文章/示例,您可能需要考虑:
就像**旁注:**确保在使用CodeIgniter示例代码之前已经加载了
url
和form
帮助函数:1.上传文件时表单必须为“multipart”类型,因此需要使用'form_open_multipart()'帮助函数,该函数返回:``
icomxhvb2#
在codeigniter中简单上传图像
查找以下代码以轻松上传图像:
dnph8jn43#
vwhgwdsa4#
像这样修改代码。它工作得很好:
zengzsys5#
nfeuvbwi6#
下面的代码用于一次上传一个文件。这是正确的,完美的上传一个文件。阅读所有注解说明,并按照代码。肯定的是,它是工作。
xxls0lw87#
检查$this-〉上载-〉初始化($config);这个对我来说很好用