html代码:
<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
<form id='myform' action='{:U("test/do_ajaxsubmit")}' method="post" enctype='multipart/form-data'>
<input type="file" name="img1"/></br>
<input type="file" name="img2"/></br>
<input type="text" name="name"/></br>
<input type="submit" name=""/>
</form>
<div id="imgShow" ></div>
<script type="text/javascript" src='__PUBLIC__/js/jquery-2.2.1.js'></script>
<script type="text/javascript" src='__PUBLIC__/js/jquery-form.js'></script>//这里需要把js文件放入到public/js目录下
<script>
$(document).ready(function() {
var options = {
target: '#output1', // target element(s) to be updated with server response
success: showResponse,
dataType: 'json', // 'xml', 'script', or 'json' (expected server response type)
};
$('#myform').submit(function(){
$(this).ajaxSubmit(options);
return false;
});
function showResponse(jsonData) {
var json = JSON.parse(jsonData);
for(n in json){
path = $('#imgShow').append("<img width='200px' height='200px' src='__PUBLIC__/upload"+json[n].savepath+json[n].savename+"'></img>");
}
}
});
</script>
</body>
</html>
后端php控制器代码:
public function do_ajaxsubmit(){
$upload=new Upload();
$upload->rootPath='Public/upload';
$upload->savePath = '/img/';
$info=$upload->upload(); //$upload->upload()一定要写 不然不会上传
// dump($info['upload']['savepath'].$info['upload']['savename']);
if(!$info){
$this->ajaxReturn($upload->getError());
}
else{
$this->ajaxReturn(json_encode($info));
}
}
解释:
var options = { }里面的参数是配置参数,这里只用到几个就可以实现异步上传图片了。
function showResponse(jsonData) {
var json = JSON.parse(jsonData);
for(n in json){
path = $('#imgShow').append("<img width='200px' height='200px' src='__PUBLIC__/upload"+json[n].savepath+json[n].savename+"'></img>");
}
}
这个是成功结果回调函数,参数jsonData是默认的,写了就可以获取到后端ajax返回来的结果。
然后进行处理则可以把上传到本地的图片展现出来。
最终结果是这样的