展会信息港展会大全

js动态创建上传表单通过iframe模拟Ajax无刷新的具体实现
来源:互联网   发布日期:2016-01-28 12:57:55   浏览:1892次  

导读:这篇文章主要介绍了js动态创建上传表单通过iframe模拟Ajax无刷新的具体实现,需要的朋友可以参考下代码如下:scriptwindow onload=function(){upfile( 39;file php 39;);} *** url 路径** function upfile( ...

这篇文章主要介绍了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>");

}

?>

赞助本站

人工智能实验室

相关热词: 表单 iframe 无刷新 js

AiLab云推荐
推荐内容
展开

热门栏目HotCates

Copyright © 2010-2024 AiLab Team. 人工智能实验室 版权所有    关于我们 | 联系我们 | 广告服务 | 公司动态 | 免责声明 | 隐私条款 | 工作机会 | 展会港