A-A+
结合jquery实现点击添加任意上传项,多文件上传脚本
今天在一个朋友的博客中看到“结合jquery实现点击添加任意上传项,多文件上传脚本”这样一个实用的多文件上传脚本,发现蛮有趣,于是就“偷过来”和大家一起分享哈。
form.php
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8"> <title>form</title> <script type="text/javascript" src="./jquery/jquery-1.10.2.min.js"></script> <script type="text/javascript"> $(document).ready(function(){ $("b").click(function(){ $('#input').append('<p><input type="file" name="myfile[]"></p>'); }); }); </script> </head> <body> <form action="upload.php" method="post" enctype="multipart/form-data"> <div id="input"> <p><input type="hidden" name="MAX_FILE_SIZE" value="1024000000" /></p> <p><input type="file" name="myfile[]"></p> </div> <b>点此添加上传项</b> <p><input type="submit" name="submit" value="提交"></p> </form> </body> </html>
upload.php
<?php /** * 多文件上传脚本 */ header("content-type:text/html;charset=utf-8"); $path='./upload'; if(isset($_POST['submit'])) { //var_dump($_FILES); //判断错误,增加容错能力 $error=$_FILES['myfile']['error']; foreach($error as $s_error) { switch($s_error) { case 1: case 2: die('对不起,您上传文件超过限制大小,<a href="./form.php">返回</a>'); case 3: die('文件部分被上传<a href="./form.php">返回</a>'); case 4: die('文件没有上传<a href="./form.php">返回</a>'); } } //获取图片文件的类型 $filearray=$_FILES['myfile']['name']; //文件后缀数组 $extarray=array(); //获取每个上传文件的后缀名 for($i=0;$i<count($filearray);$i++) { $ext=strrchr($filearray[$i],'.'); //后缀压入数组 array_push($extarray,$ext); } $tempfilearray=$_FILES['myfile']['tmp_name']; //根据上传的文件的后缀名移动生成新文件 for($i=0;$i<count($tempfilearray);$i++) { if(is_uploaded_file($tempfilearray[$i])) { if(!move_uploaded_file($tempfilearray[$i], $path.'/'.time().mt_rand(0,1000000).$extarray[$i])) { die("问题:不能将文件移动到指定目录"); } } } echo '<script type="text/javascript" charset="utf-8"> alert("恭喜您,文件批量上传成功"); location.href="./form.php"; </script>'; //跳转回上传页面 //header('location:./form.php'); } ?>