📜  使用 CodeIgniter 上传多张图片 - PHP (1)

📅  最后修改于: 2023-12-03 14:49:38.060000             🧑  作者: Mango

使用 CodeIgniter 上传多张图片 - PHP

在网站开发中,经常需要允许用户上传多张图片。CodeIgniter 是一个流行的 PHP 框架,提供了一种简单的方式来处理上传文件的操作。以下是使用 CodeIgniter 实现多张图片上传的示例代码。

步骤 1:安装 CodeIgniter

首先,你需要安装 CodeIgniter 框架并设置好项目。你可以从 CodeIgniter 的官方网站(https://codeigniter.com/)下载最新版本的框架。

步骤 2:编写视图文件

创建一个包含多个文件上传表单的视图文件。你可以使用 HTML 和 CodeIgniter 的辅助函数来实现这一点。下面是一个示例的视图文件:

<form method="post" enctype="multipart/form-data" action="upload">
    <input type="file" name="userfile[]" multiple>
    <input type="submit" value="上传">
</form>

在上述示例中,name 属性设置为 userfile[],以便可以上传多个文件。

步骤 3:编写控制器

创建一个控制器来处理文件上传的逻辑。在控制器中,你需要使用 CodeIgniter 的文件上传类来完成这个任务。以下是一个示例的控制器代码:

<?php
defined('BASEPATH') OR exit('No direct script access allowed');

class Upload extends CI_Controller {

    public function __construct() {
        parent::__construct();
        $this->load->helper(array('form', 'url'));
    }

    public function index() {
        $this->load->view('upload_form');
    }

    public function upload_files() {
        $config['upload_path'] = './uploads/';
        $config['allowed_types'] = 'gif|jpg|png';
        $config['max_size'] = 1024; // 1MB
        $config['max_width'] = 1024;
        $config['max_height'] = 768;

        $this->load->library('upload', $config);

        if (!$this->upload->do_upload('userfile[]')) {
            echo $this->upload->display_errors();
        } else {
            $data = $this->upload->data();
            // 这里可以进行处理上传成功后的操作,比如保存文件路径到数据库等
            echo "文件上传成功:" . $data['file_name'];
        }
    }
}

在上述示例中,我们加载了 CodeIgniter 的文件上传和辅助函数,然后定义了上传文件的目标路径、允许的文件类型、最大文件大小和尺寸限制。

upload_files 方法处理上传文件的逻辑。如果上传不成功,将打印出错误信息;如果上传成功,可以在这里进行进一步的操作,如保存文件路径到数据库中。

步骤 4:配置路由

在 CodeIgniter 中,你需要设置路由来将请求路由到正确的控制器和方法。打开 config/routes.php 文件,添加以下配置:

$route['upload'] = 'upload/upload_files';
步骤 5:访问上传页面

现在你可以通过访问 http://yourdomain.com/upload 来访问上传页面,并上传多个图片。

希望这个示例能帮助你理解如何在 CodeIgniter 中上传多张图片!