下载并安装CodeIgniter 4
下载最新版本的CodeIgniter 4,并将源代码解压到名为LearnCodeIgniter4WithRealApps的新文件夹。
将公共文件夹中的index.php和htaccess文件剪切到项目的根文件夹中。
打开根文件夹中的index.php,找到第16行,将路径替换为Paths.php文件,如下所示。
$pathsPath = realpath(FCPATH . '/app/Config/Paths.php');
打开app/Config文件夹中的App.php,找到第39行,在$indexPage变量中删除index.php字符串,如下所示。
public $indexPage = '';
设置BASE URL
打开app/Config文件夹中的App.php文件。设置**$baseURL**变量的值,如下所示。
public $baseURL = 'http://localhost:8091/LearnCodeIgniter4WithRealApps/';
创建控制器
在app/Controllers文件夹下创建名为Demo.php的新PHP文件,如下所示。
<?php
namespace App\Controllers;
class Demo extends BaseController
{
public function __construct()
{
helper(['url', 'form']);
}
public function index()
{
return view('demo/index');
}
public function doUpload()
{
$fileInfos = array();
$files = $this->request->getFileMultiple('photos');
foreach ($files as $file) {
$randomName = $file->getRandomName();
$data['fileName'] = $file->getName();
$data['randomName'] = $randomName;
$data['fileType'] = $file->getClientMimeType();
$data['fileSize'] = $file->getSize();
$file->move('public/uploads', $randomName);
array_push($fileInfos, $data);
}
$data['fileInfos'] = $fileInfos;
return view('demo/success', $data);
}
}
创建视图
在app/Views文件夹下创建名为Demo的新文件夹。在这个文件夹中,创建新的PHP文件,命名如下。
索引视图
在demo文件夹中,创建名为index.php的新的PHP文件,如下所示。
<html>
<head>
<title>Multiple File Upload in CodeIgniter 4</title>
</head>
<body>
<h3>Multiple Files Upload</h3>
<?= form_open_multipart('demo/do_upload'); ?>
<input type="file" name="photos[]" multiple="multiple" />
<br /><br />
<input type="submit" value="Upload" />
<?= form_close(); ?>
</body>
</html>
成功视图
在demo文件夹中,创建名为success.php的新的PHP文件,如下所示。
<html>
<head>
<title>Multiple File Upload in CodeIgniter 4</title>
</head>
<body>
<h3>Files Info</h3>
<?php foreach ($fileInfos as $fileInfo) { ?>
File Name: <?= $fileInfo['fileName'] ?>
<br>
Random Name: <?= $fileInfo['randomName'] ?>
<br>
File Type: <?= $fileInfo['fileType'] ?>
<br>
File Size(byte): <?= $fileInfo['fileSize'] ?>
<br>
<img src="<?= base_url() ?>/public/uploads/<?= $fileInfo['randomName'] ?>" width="120">
<br>
----------------------------------
<br>
<?php } ?>
</body>
</html>
定义路线
打开app/Config文件夹中的Routes.php文件,定义路线如下。
$routes->get('/', 'Demo::index');
$routes->post('/demo/do_upload', 'Demo::doUpload');
CodeIgniter项目的结构

运行应用程序
用以下网址访问Demo控制器中的index动作**:http://localhost:8091/LearnCodeIgniter4WithRealApps/demo/index**
輸出

