index.php
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Ajax异步上传图片</title> <script src="js/jquery-1.4.2.js" language="JavaScript" type="text/javascript"></script> <script src="js/jquery.form.js" language="JavaScript" type="text/javascript"></script> <script type="text/javascript"> function sky_upfiles(){ var messtxt; $("#sky_upform").ajaxSubmit({ //dataType:'script', type:'post', url: "doupfiles.php", beforeSubmit: function(){ $("#sky_txt").html("图片上传中..."); }, success: function(data){ if(data=="1"){ messtxt = "上传成功!"; }else if(data=="-1"){ messtxt = "文件超过规定大小!"; }else if(data=="-2"){ messtxt = "文件类型不符!"; }else if(data=="-3"){ messtxt = "移动文件出错!"; }else{ messtxt = "未知错误!"; } $("#sky_txt").html(messtxt); //$("#sky_txt").append(data); }, resetForm: false, clearForm: false }); //$("#upimgform").submit(); } </script> </head> <body> <br /> <fieldset style="width:97%"> <legend>上传文件</legend> <form enctype="multipart/form-data" id="sky_upform" name="sky_upform" action="" method="post"> <table width="100%" border="0" align="center" cellpadding="3" cellspacing="0"> <tr> <td width="100" align="right" class="f-12"></td> <td class="f-12" align="left"> <input name="upfile" id="upfile" maxlength="20" size="40" type="file" value="" /><input name="upmit" type="button" id="upmit" value="上传" onclick="sky_upfiles()"/> <font color="red" id="sky_txt"></font></td> </tr> </form> </body> </html>
doupfiles.php
<?php /* * 1:成功上传 *-1:文件超过规定大小 *-2:文件类型不符 *-3:移动文件出错 */ if(is_uploaded_file($_FILES['upfile']['tmp_name'])){ $photo_types=array('image/jpg', 'image/jpeg','image/png','image/pjpeg','image/gif','image/bmp','image/x-png');//定义上传格式 $max_size=700000; //上传照片大小限制,默认700k $photo_folder="upload/".date("Y")."/".date("m")."/".date("d")."/"; //上传照片路径 ///////////////////////////////////////////////////开始处理上传 if(!file_exists($photo_folder))//检查照片目录是否存在 { mkdir($photo_folder, 0777, true); //mkdir("temp/sub, 0777, true); } $upfile=$_FILES['upfile']; $name=$upfile['name']; $type=$upfile['type']; $size=$upfile['size']; $tmp_name=$upfile['tmp_name']; $file = $_FILES["upfile"]; $photo_name=$file["tmp_name"]; //echo $photo_name; $photo_size = getimagesize($photo_name); if($max_size < $file["size"])//检查文件大小 echo "-1"; //echo "<script>alert('对不起,文件超过规定大小!');history.go(-1);</script>"; if(!in_array($file["type"], $photo_types))//检查文件类型 echo "-2"; //echo "<script>alert('对不起,文件类型不符!');history.go(-1);</script>"; if(!file_exists($photo_folder))//照片目录 mkdir($photo_folder); $pinfo=pathinfo($file["name"]); $photo_type=$pinfo['extension'];//上传文件扩展名 $photo_server_folder = $photo_folder.time().".".$photo_type;//以当前时间和7位随机数作为文件名,这里是上传的完整路径 if(!move_uploaded_file ($photo_name, $photo_server_folder)) { echo "-3"; //echo "移动文件出错"; exit; } $pinfo=pathinfo($photo_server_folder); $fname=$pinfo['basename']; echo "1"; //echo " 已经成功上传:".$photo_server_folder."<br />"; } ?>
效果图: