[分享]使用iframe + ci上传类 实现异步文件上传
非常简单的使用jquery实现文件的异步上传,并且在窗口显示上传后的文件名<?php
class welcome extends CI_Controller {
public function index() {
$this->load->view('uploader');
}
public function doupload() {
$config = array(
'encrypt_name' => TRUE,
'upload_path' => up_url('', 1),
'allowed_types' => '*'
);
$this->load->library('upload', $config);
if (!$this->upload->do_upload()) {
$datas['result'] = $this->upload->display_errors();
} else {
$datas['result'] = $this->upload->data()['file_name'];
}
//指定父页面接收上传文件名的元素id
$datas['result_field'] = 'up_name';
$this->load->view('upload_result', $datas);
}
}
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<script src="<?php echo public_res('js/jquery-1.9.1.min.js'); ?>" type="text/javascript"></script>
<script type="text/javascript">
function tt1() {
$("#upup").appendTo($("#iff").contents().find("body")).submit();
$("#up_name").val("uploading,please wait...");
}
</script>
</head>
<body>
<input id="up_name" value="" disabled="disabled" />
<form id="upup" action="<?php echo site_url('welcome/doupload'); ?>" method="post" enctype="multipart/form-data">
<input name="userfile" type="file" />
<input type="button" value="upload" />
</form>
<iframe id="iff">
</iframe>
</body>
</html>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<script src="<?php echo public_res('js/jquery-1.9.1.min.js'); ?>" type="text/javascript"></script>
<script type="text/javascript">
$(document).ready(function() {
var upload_result = $("#result").html();
$(window.parent.document).find("#<?php echo $result_field; ?>").val(upload_result);
});
</script>
</head>
<body>
<div id="result"><?php echo $result; ?></div>
</body>
</html>
代码不能用啊大哥
页:
[1]