要实现异步上传图片方法有常用的有二种,一种是利用iframe实现,另一种是借助于ajax来实现一般用第三方插件了。
上传图片form提交target到一个隐藏的iframe里,
然后后台处理完上传图片逻辑后返回给前台,利用ajax修改当前页面DOM对象实现无刷新上传图片的友好功能。
实例
上传文件:
PHP代码:<?php
if ($_FILES["test_file"]["error"] > 0)
{
echo "Error: " . $_FILES["test_file"]["error"] . "
";
}
else
{
//这里的判断图片属性的方法就不写了。自己扩展一下。
$filetype=strrchr($_FILES["test_file"]["name"],".");
$filetype=substr($filetype,1,strlen($filetype));
$filename="img/".time("YmdHis").".".$filetype;
move_uploaded_file($_FILES["test_file"]["tmp_name"],$filename);
echo '';
$return="parent.document.getElementByIdx_x('mpic".$pageset_id."').innerHTML='".$dataimgpath."'";
echo "";
echo "";
}
?>
其实jquery ajax图片异步上传
HTML:html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "1/DTD/xhtml1-transitional.dtd">
图片异步上传index.js
$(function(){ $("#upload_file").change(function(){ $("#uploadFrom").submit(); });});
function stopSend(str){ var im=""; $("#msg").append(im);
}
upload.php<?php
$file=$_FILES['upfile'];
$name=rand(0,500000).dechex(rand(0,10000)).".jpg";
move_uploaded_file($file['tmp_name'],"upload/images/".$name);
//调用iframe父窗口的js 函数
echo "";?>