CodeIgniter 4中的单文件上传教程

147 阅读1分钟

下载并安装CodeIgniter 4

下载最新版本的CodeIgniter 4,并将源代码解压到名为LearnCodeIgniter4WithRealApps的新文件夹。

公共文件夹中的index.phphtaccess文件剪切到项目的文件夹中。

打开文件夹中的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()
	{
		$file = $this->request->getFile('photo');
		$randomName = $file->getRandomName();
		$data['fileName'] = $file->getName();
		$data['randomName'] = $randomName;
		$data['fileType'] = $file->getClientMimeType();
		$data['fileSize'] = $file->getSize();
		$file->move('public/uploads', $randomName);
		return view('demo/success', $data);
	}
}						

创建视图

app/Views文件夹下创建名为Demo的新文件夹。在这个文件夹中,创建新的PHP文件,命名如下。

索引视图

demo文件夹中,创建名为index.php的新的PHP文件,如下所示。

<html>

<head>
	<title>Single File Upload in CodeIgniter 4</title>
</head>

<body>

	<h3>Upload File</h3>

	<?= form_open_multipart('demo/do_upload'); ?>
		<input type="file" name="photo" />
		<br /><br />
		<input type="submit" value="Upload" />
	<?= form_close(); ?>

</body>

</html>

成功视图

demo文件夹中,创建名为success.php的新的PHP文件,如下所示。

<html>

<head>
	<title>Single File Upload in CodeIgniter 4</title>
</head>

<body>

	<h3>File Info</h3>
	File Name: <?= $fileName ?>
	<br>
	Random Name: <?= $randomName ?>
	<br>
	File Type: <?= $fileType ?>
	<br>
	File Size(byte): <?= $fileSize ?>
	<br>
	<img src="<?= base_url() ?>/public/uploads/<?= $randomName ?>" width="120">

</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

输出