当我尝试使上传文件演示工作时,我正在为我的服务器使用 codeigniter 2.2.6(我是 CI 的新手),但当我单击提交按钮时没有任何反应。
这是我遵循的用户指南:
文件上传类
视图文件:
<html>
<head>
<title>Upload Form</title>
</head>
<body>
<?php echo $error;?>
<?php echo form_open_multipart('upload/do_upload');?>
<input type="file" name="userfile" size="20" />
<br /><br />
<input type="submit" value="upload" />
</form>
</body>
</html>
控制器:
<?php
class Upload extends CI_Controller {
function __construct() {
parent::__construct ();
$this->load->helper ( array (
'form',
'url'
) );
}
function index() {
echo CI_VERSION;
$this->load->view ( 'upload_form', array (
'error' => ' '
) );
}
function do_upload() {
$config ['upload_path'] = './uploads/';
$config ['allowed_types'] = 'gif|jpg|png';
$config ['max_size'] = '100';
$config ['max_width'] = '1024';
$config ['max_height'] = '768';
$this->load->library ( 'upload', $config );
echo "step 1";
if (! $this->upload->do_upload ()) {
echo "step 2";
$error = array (
'error' => $this->upload->display_errors ()
);
$this->load->view ( 'upload_form', $error );
} else {
echo "step 3";
$data = array (
'upload_data' => $this->upload->data ()
);
$this->load->view ( 'upload_success', $data );
}
}
}
?>
我可以看到浏览和提交按钮,选择文件后,文件名正确显示,但是当我单击提交时,没有任何反应,看起来没有处理提交单击。
如您所见,我设置了 3 个回显"步骤"来遵循流程,但没有一个被打印出来,我不知道为什么。
谁能帮忙? 请解释一下按钮点击处理背后的逻辑。
问题是操作 url 不正确。
<form enctype="multipart/form-data" accept-charset="utf-8" method="post" action="http://::1/upload/do_upload">
<input type="file" size="20" name="userfile"> <br> <br>
<input type="submit" value="upload">
</form>
这似乎与我为删除索引所做的工作有关.php在网站网址中,我有
$config['base_url'] = '';
这使得操作 URL 成为
http://::1/upload/do_upload
这使得演示不起作用,解决方案是手动添加正确的操作 URL。