首页 / 脚本样式 / JavaScript / 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>");
}
?>