【发布时间】:2014-02-18 00:59:15
【问题描述】:
我在我的 CodeIgniter 网站中有一个带有文件输入的表单。当我填写表格并单击提交按钮时,它工作正常。但是,当我刷新浏览器时,会再次上传相同的表单数据。我怎样才能防止这种情况发生?
输入表格
<form name="image_upload" action="<?= base_url() ?>admin/image_move_upload" method="post" accept-charset="utf-8" enctype="multipart/form-data">
<ul>
<li class="ui-field"><label for="filename">File Name :</label></li>
<li class="ui-input"><input type="text" name="filename" placeholder=""></li>
<li class="ui-field"><label for="file">Image( *only .jpg) :</label></li>
<li class="ui-input"><input type="file" name="imagefile" value="" placeholder="" required=""></li>
<li><input type="submit" name="Upload" class="ui-submit"></li>
</ul>
</form>
控制器部分
function image_move_upload() {
$data['errors'] = NULL;
$data['success'] = NULL;
if (isset( $_POST['Upload'] )) {
$config_arr = array(
'upload_path' => './uploads/slider/',
'allowed_types' => 'jpg',
'max_size' => '2048',
'max_width' => '1024',
'max_height' => '768',
'encrypt_name' => true,
'file_name' => 'sanji.jpg',
);
$this->load->library('upload', $config_arr);
if (!$this->upload->do_upload('imagefile')) {
$data['errors'] = $this->upload->display_errors(); // this isn't working
} else {
$data['qs'] = $this->upload->data();
$data['success'] = "File Uploaded Successfully";
}
}
$data['main_content'] = 'admin/upload';
$this->load->view('admin_layout', $data);
}
【问题讨论】:
-
据我所知...恕我直言,要在提交后重置表单,您必须
redirectheader :) -
重定向到同一个控制器。
-
可能相关:net.tutsplus.com/tutorials/php/… 诀窍是,您的 csrf 令牌将在随后的页面加载之间延迟。
-
我认为您不必刷新页面...提交数据后页面会自动刷新。
-
@Ankur140290 提交表单后,它会加载没有数据的表单。但是当我刷新页面时,它会从缓存中获取先前输入的数据。我想防止这种情况发生
标签: php forms codeigniter