js动态创建上传表单通过iframe模拟Ajax实现无刷新
代码如下:
<script> window.onload=function(){ upfile('file.php'); } /* ** url 路径 **/ function upfile(url){ //创建iframe var iframe = document.createElement("iframe"); document.body.appendChild(iframe); iframe.id = 'iframeName'; iframe.name = 'iframeName'; iframe.style.display = 'none'; //创建form var turnForm = document.createElement("form"); document.body.appendChild(turnForm); turnForm.method = 'post'; turnForm.action = url; turnForm.encoding = "multipart/form-data"; turnForm.name = 'formNamer'; turnForm.target = 'iframeName'; //创建隐藏表单 var newElement = document.createElement("input"); newElement.setAttribute("name","inputname"); newElement.setAttribute("type","file"); newElement.setAttribute("value",''); turnForm.appendChild(newElement); } //form提交 function formSubmit() { //var res = document.formNamer.inputname.value; document.formNamer.submit(); } //返回值 function callback(result){ //window.parent.document.getElementById('iframeName').style.display = 'block'; 通过iframe 查看后台数据 if(result['error'] == 0){ document.getElementById('test').src= result['img'][1]+'/'+result['img'][2]; }else if(result['error'] == 1){ alert(result['meg']); }else if(result['error'] == 2){ alert(result['meg']); }else if(result['error'] == 3){ alert(result['meg']); }else if(result['error'] == 4){ alert(result['meg']); }else{ alert(result['meg']); } } </script> <a href="javascript:formSubmit()">上传</a> <img src="http://blog.163.com/zhwxl_zyx/blog/img/pasic.jpg" id="test" width="200" height="200">
file.php
代码如下:
<?php header("content-Type: text/html; charset=Utf-8"); if(@is_uploaded_file($_FILES['inputname']['tmp_name'])){ $f = $_FILES['inputname']; $name = $f["name"]; $size = $f["size"]; $type = $f["type"]; $fileName = $f["tmp_name"]; switch ($type) { case 'image/jpg':$okType = true; break; case 'image/jpeg':$okType = true; break; case 'image/png':$okType = true; break; case 'image/gif':$okType = true; break; } if($okType){ $error = $f["error"]; echo '文件名称:'.$name.'<br>'; echo '文件类型:'.$type.'<br>'; echo '文件大小:'.round($size/1024).'K<br>'; echo '文件临时存放路径:'.$fileName.'<br>'; $fileDir = dirname(__FILE__).'/img/upfile'.time().$name; $img = explode('/',$fileDir); move_uploaded_file($fileName, $fileDir); $data = array(); $data['img'] = $img; $data['name'] = $name; $data['type'] = $type; $data['size'] = $size; $data['filename'] = $fileName; $data['fileDir'] = $fileDir; if($error==0){ /*echo '上传成功!'; echo '预览:'; echo "<img src="http://blog.163.com/zhwxl_zyx/blog/.$img[1].'/'.$img[2]." width='200' height='200'><br>"; echo '文件名称'.$img[2];*/ $data['error'] = 0; exit("<script>parent.callback(".json_encode($data).");</script>"); }elseif($error==1){ $data['error'] = 1; $data['meg'] = '超过了文件大小,在php.ini文件中设置'; exit("<script>parent.callback(".json_encode($data).");</script>"); }elseif ($error==2){ $data['error'] = 2; $data['meg'] = '超过了文件的大小MAX_FILE_SIZE选项指定的值'; exit("<script>parent.callback(".json_encode($data).");</script>"); }elseif ($error==3){ $data['error'] = 3; $data['meg'] = '文件只有部分被上传'; exit("<script>parent.callback(".json_encode($data).");</script>"); }elseif ($error==4){ $data['error'] = 4; $data['meg'] = '没有文件被上传'; exit("<script>parent.callback(".json_encode($data).");</script>"); }else{ $data['meg'] = '上传文件大小为0'; exit("<script>parent.callback(".json_encode($data).");</script>"); } } }else{ $data['error'] = 4; $data['meg'] = '没有文件被上传'; exit("<script>parent.callback(".json_encode($data).");</script>"); } ?>
相关推荐
架构技术交流 2020-07-28
haohong 2020-07-18
tiankele0 2020-06-26
xiangxiaojun 2020-06-25
pythonclass 2020-06-04
WebVincent 2020-06-03
sixthelement 2020-05-30
云之高水之远 2020-05-19
云之高水之远 2020-05-17
Chydar 2020-05-15
tuxlcsdn 2020-04-17
ajaxtony 2020-02-03
STPace 2020-02-03
学留痕 2013-05-11
云之高水之远 2020-01-05
TONIYH 2019-12-20
nimeijian 2019-12-15
我只是个程序员 2014-01-18