在CodeIgniter中使用表单数据进行单文件上传,可以按照以下步骤进行操作:
config.php
中,确保已启用文件上传功能。请确保以下配置项已设置:$config['allow_file_types'] = 'gif|jpg|png';
$config['max_file_size'] = '2048'; // 文件大小限制,单位为KB
$config['upload_path'] = './uploads/'; // 上传文件保存路径,需要事先创建该目录并设置合适的权限
enctype
属性设置为multipart/form-data
,以支持文件上传。示例:<form action="upload.php" method="post" enctype="multipart/form-data">
<input type="file" name="userfile" />
<input type="submit" value="Upload" />
</form>
UploadController.php
,并添加以下代码:<?php
class UploadController extends CI_Controller {
public function __construct() {
parent::__construct();
$this->load->helper('form');
$this->load->library('form_validation');
$this->load->library('upload');
}
public function upload_file() {
$config['upload_path'] = './uploads/';
$config['allowed_types'] = 'gif|jpg|png';
$config['max_size'] = 2048;
$this->upload->initialize($config);
if (!$this->upload->do_upload('userfile')) {
// 文件上传失败
$error = array('error' => $this->upload->display_errors());
$this->load->view('upload_form', $error);
} else {
// 文件上传成功
$data = array('upload_data' => $this->upload->data());
$this->load->view('upload_success', $data);
}
}
}
?>
views
文件夹中创建两个视图文件upload_form.php
和upload_success.php
用于显示上传表单和上传成功信息。示例:
upload_form.php
:<!DOCTYPE html>
<html>
<head>
<title>Upload File</title>
</head>
<body>
<?php echo form_open_multipart('upload/upload_file'); ?>
<input type="file" name="userfile" />
<input type="submit" value="Upload" />
<?php echo form_close(); ?>
<?php echo $error; ?>
</body>
</html>
upload_success.php
:
<!DOCTYPE html>
<html>
<head>
<title>Upload Success</title>
</head>
<body>
<h3>File uploaded successfully!</h3>
<ul>
<?php foreach ($upload_data as $item => $value): ?>
<li><?php echo $item; ?>: <?php echo $value; ?></li>
<?php endforeach; ?>
</ul>
</body>
</html>
完成上述步骤后,你就可以在CodeIgniter中使用表单数据进行单文件上传了。上传的文件会保存在配置文件中指定的路径./uploads/
下。在控制器中,你可以根据需要对上传的文件进行处理,并根据业务逻辑进行后续操作。
注意:以上代码仅供参考,实际应用中可能需要根据具体需求进行适当的调整。此外,为了安全起见,还需要添加适当的文件类型和大小限制以及安全验证等措施。
领取专属 10元无门槛券
手把手带您无忧上云