首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

上传文件时,我只得到数组中的第一个图像,我想要array.Using Codeigniter中的所有图像

在Codeigniter中,上传文件时,如果只得到数组中的第一个图像,可以通过以下步骤获取数组中的所有图像:

  1. 确保在表单中的文件上传字段设置了multiple属性,以允许同时上传多个文件。
代码语言:txt
复制
<input type="file" name="userfiles[]" multiple>
  1. 在后端控制器中,使用Codeigniter的文件上传库来处理上传的文件。
代码语言:txt
复制
// 加载文件上传库
$this->load->library('upload');

// 配置上传设置
$config['upload_path'] = './uploads/';
$config['allowed_types'] = 'gif|jpg|png';
$config['max_size'] = 1024;

// 初始化上传类
$this->upload->initialize($config);

// 循环处理上传的每个文件
foreach ($_FILES['userfiles']['name'] as $key => $filename) {
    $_FILES['userfile']['name'] = $_FILES['userfiles']['name'][$key];
    $_FILES['userfile']['type'] = $_FILES['userfiles']['type'][$key];
    $_FILES['userfile']['tmp_name'] = $_FILES['userfiles']['tmp_name'][$key];
    $_FILES['userfile']['error'] = $_FILES['userfiles']['error'][$key];
    $_FILES['userfile']['size'] = $_FILES['userfiles']['size'][$key];

    // 执行文件上传
    if ($this->upload->do_upload('userfile')) {
        // 文件上传成功
        $data = $this->upload->data();
        // 处理上传成功的文件
        // ...
    } else {
        // 文件上传失败
        $error = $this->upload->display_errors();
        // 处理上传失败的文件
        // ...
    }
}

通过以上代码,我们将循环处理$_FILES['userfiles']数组中的每个文件,将其赋值给$_FILES['userfile'],然后执行文件上传操作。这样就可以获取到数组中的所有图像文件。

需要注意的是,上述代码中的文件上传路径./uploads/是相对于Codeigniter的根目录的路径,你可以根据实际情况进行修改。

此外,为了确保上传的文件类型符合要求,我们在配置中设置了allowed_types参数,只允许上传gif、jpg和png格式的文件。你可以根据需要进行修改。

关于Codeigniter的文件上传库的更多详细信息,你可以参考腾讯云的相关文档和示例代码:

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • 自动共享和上传文件到兼容的托管站点

    前阵子我们写了一个关于 Transfer.sh的指南,它允许你使用命令行通过互联网来分享文件。今天,我们来看看另一种文件分享实用工具 Anypaste。这是一个基于文件类型自动共享和上传文件到兼容托管站点的简单脚本。你不需要去手动登录到托管站点来上传或分享你的文件。Anypaste 将会根据你想上传的文件的类型来自动挑选合适的托管站点。简单地说,照片将被上传到图像托管站点,视频被传到视频站点,代码被传到 pastebin。难道不是很酷的吗?Anypaste 是一个完全开源、免费、轻量的脚本,你可以通过命令行完成所有操作。因此,你不需要依靠那些臃肿的、需要消耗大量内存的 GUI 应用来上传和共享文件。

    01

    关于InputStream类的available()方法

    要一次读取多个字节时,经常用到InputStream.available()方法,这个方法可以在读写操作前先得知数据流里有多少个字节可以读取。需要注意的是,如果这个方法用在从本地文件读取数据时,一般不会遇到问题,但如果是用于网络操作,就经常会遇到一些麻烦。比如,Socket通讯时,对方明明发来了1000个字节,但是自己的程序调用available()方法却只得到900,或者100,甚至是0,感觉有点莫名其妙,怎么也找不到原因。其实,这是因为网络通讯往往是间断性的,一串字节往往分几批进行发送。本地程序调用available()方法有时得到0,这可能是对方还没有响应,也可能是对方已经响应了,但是数据还没有送达本地。对方发送了1000个字节给你,也许分成3批到达,这你就要调用3次available()方法才能将数据总数全部得到。 http://www.cnblogs.com/CandiceW/p/5486112.html

    02
    领券