来上张图。

1 <!doctype html> 2 <html> 3 <head> 4 <link rel = "stylesheet" type = "text/css" href = "./Plugins/uploadify.css"> 5 <link rel = "stylesheet" type = "text/css" href = "./base.css"> 6 <script src = "Plugins/jquery.js"></script> 7 <script src = "Plugins/jquery.uploadify.min.js"></script> 8 </head> 9 <script type="text/javascript"> 10 var i=0;//初始化数组下标 11 var uploadInfo = []; //存储名称 12 $(function() { 13 $('#file_upload').uploadify({ 14 'auto' : false,//关闭自动上传 15 'debug' : true, //开启调试模式 16 'width' : 200, //上传按钮的宽 17 'height' : 60,//上传按钮的高 18 'fileObjName':'file_upload', //上传的表单名称 <input type = "file" name = "file_upload" /> 19 'removeTimeout' : 1,//文件队列上传完成1秒后删除 20 'swf' : 'Plugins/uploadify.swf', // 加载插件的flash文件 21 'uploader' : 'do.php', //上传的脚本 22 'method' : 'post',//方法,服务端可以用$_POST数组获取数据 23 'buttonText' : '选择上传图片',//设置按钮文本 24 'multi' : true,//允许同时上传多张图片 25 'uploadLimit' : 10,//一次最多只允许上传10张图片 26 'fileTypeDesc' : 'Image Files',//只允许上传图像 27 'fileTypeExts' : '*.gif; *.jpg; *.png',//允许上传的图片格式---注意前端判断过,后端必须要判断 28 'fileSizeLimit' : '20000KB',//限制上传的图片不得超过200KB 29 'onUploadSuccess' : function(file, data, response) 30 {//每次成功上传后执行的回调函数,从服务端返回数据 31 uploadInfo[i]=data; 32 i++; 33 alert(data); 34 }, 35 }); 36 }); 37 //上传 38 function doUpload(){ 39 $('#file_upload').uploadify('upload','*'); 40 } 41 </script> 42 <body> 43 <div id = "header"> 44 <span class = "title">PHP+Uploadify3.2上传插件</span> 45 </div> 46 <div class = "mb10"></div> 47 <div id = "content" style = "text-align:center"> 48 <div class = "mb10"></div> 49 50 <input type="file" name="file_upload" id="file_upload" /> 51 52 <div class = "mb10"></div> 53 </div> 54 <div class = "upload"> 55 <button type = "button" onclick = "doUpload();">上传</button> 56 </div> 57 <div id = "footer"></div> 58 </body> 59 </html>
PHP上传脚本
1 <?php 2 3 //上传表单的name 4 $InputName = 'file_upload'; 5 //上传-路径 6 $path = 'upload/'; 7 //允许上传大小单位是M 8 $allSize = 2; 9 //允许上传的后缀名 10 $allPrefix = array('jpg', 'jpeg', 'png', 'gif', 'rar', 'zip', 'txt'); 11 //允许的Mime 12 //用浏览器传输过来的 mime 不太安全。 13 $allMime = array( 14 'jpg' => 'image/jpeg', 15 'jpeg' => 'image/jpeg', 16 'png' => 'image/png', 17 'gif' => 'image/gif', 18 'zip' => 'application/octet-stream', 19 "rar" => "application/x-rar-compressed", 20 'txt' => 'text/plain', 21 ); 22 // 并且上传没有错误的情况下 23 if(!empty($_FILES) && $_FILES[$InputName]['error'] == 0){ 24 // 上传的源文件名 25 $fileName = iconv("UTF-8", 'GBK', strtolower($_FILES[$InputName]['name'])); 26 // 获取后缀 27 $hz = strtolower(substr($fileName, strrpos($fileName, '.') + 1)); //后缀 28 if(!in_array($hz, $allPrefix)){ 29 die('后缀名非法了'); 30 } 31 //我的版本是5.3.8不能使用mime_content_type();5.3废除了这个方法 32 //5.3以上版本可以使用pecl 里面的finfo_*系列的函数去判断 33 if(!in_array($_FILES[$InputName]['type'], $allMime)){ 34 35 die('类型不符合'); 36 } 37 print_r($_FILES[$InputName]['type']); 38 // 服务器最大post大小,和允许上传的大小-单位M 39 $serverPostSize = (int)ini_get('post_max_size'); 40 41 // 上传文件的大小单位M 42 $fileSize = ceil(($_FILES[$InputName]['size']) / 1024 / 1024); 43 if($serverPostSize <= $allSize || $fileSize > $allSize){ 44 45 die('大小超过限制'); 46 } 47 48 // 判断是否是上传的文件 49 if(!is_uploaded_file($_FILES[$InputName]['tmp_name'])){ 50 die('非法操作'); 51 } 52 // 如果文件不存在 53 if(!is_dir($path)){ 54 mkdir($path, 0777); 55 } 56 57 // 组合上传后的文件名 58 $newFileName = $path . date('YmdHis', time()) . '_' . $fileName; 59 // 开始上传 60 if(move_uploaded_file($_FILES[$InputName]['tmp_name'], $newFileName)){ 61 //上传以后的文件 62 echo '上传成功'; 63 64 }else{ 65 66 echo '上传失败'; 67 } 68 }else{ 69 die('上传出错'); 70 } 71 72 ?>
如果扩展请参考上一篇的参数进行扩展。by:zhuzhenyu
浙公网安备 33010602011771号