jquery.fileupload.js插件使用--单视频或音频上传预览
2016-02-26 15:58
681 查看
一、前台代码:
二、后台代码:
三、效果图:
<!DOCTYPE html> <html> <head> <title>jquery.fileupload.js使用测试</title> <script src="jquery-1.12.0.min.js"></script> <script src="jquery.ui.widget.js"></script> <script src="jquery.iframe-transport.js"></script> <script src="jquery.fileupload.js"></script> <script src="jquery.xdr-transport.js"></script> <style type="text/css"> .bar { margin-top:10px; height:10px; max-width: 300px; background: green; } </style> </head> <body> <div style="margin-top:20px;"> <span>请上传:</span> <span style='color:blue;'>(支持'3gp','rmvb','flv','wmv','avi','mkv','mp4','mp3','wav'格式)</span> </div> <div style="margin-top:10px;"> <form action="" name="" enctype="multipart/form-data"> <input type="file" name="files" class="upinput" param1="xxx"/> <input type="hidden" name="param2" value="yyy" class="param2"> </form> </div> <!-- 上传进度条及状态: --> <div class="progress"> <div class="bar" style="width: 0%;"></div> <div class="upstatus" style="margin-top:10px;"></div> </div> <!-- 预览框: --> <div class="preview"></div> </body> </html> <script type="text/javascript"> $(".upinput").fileupload({ url:"accept_video_one.php",//文件上传地址,当然也可以直接写在input的data-url属性内 dataType: "json", //如果不指定json类型,则传来的json字符串就需要解析jQuery.parseJSON(data.result); formData:function(form){//如果需要额外添加参数可以在这里添加 return [{name:"param1",value:$(".upinput").attr("param1")}, {name:"param2",value:$(".param2").val()}]; }, done:function(e,data){ //done方法就是上传完毕的回调函数,其他回调函数可以自行查看api //注意data要和jquery的ajax的data参数区分,这个对象包含了整个请求信息 //返回的数据在data.result中,这里dataType中设置的返回的数据类型为json if(data.result.sta) { // 上传成功: $(".upstatus").html(data.result.msg); $(".preview").html("<embed src="+data.result.previewSrc+ " allowscriptaccess='always' allowfullscreen='true' wmode='opaque'"+ " width='480' height='400'></embed>"); } else { // 上传失败: $(".progress .bar").css("width", "0%"); $(".upstatus").html("<span style='color:red;'>"+data.result.msg+"</span>"); } }, progress: function (e, data) {//上传进度 var progress = parseInt(data.loaded / data.total * 100, 10); $(".progress .bar").css("width", progress + "%"); $(".upstatus").html("正在上传..."); } }); </script>
二、后台代码:
<?php $file = $_FILES['files']; //formData传过来的参数param1和param2 $param1 = $_POST['param1']; $param2 = $_POST['param2']; //ajax返回数组 $data = array('sta'=>TRUE,'msg'=>'上传成功!'); //检查是否为图片 $ext = getExt($file['name']); $arrExt = array('3gp','rmvb','flv','wmv','avi','mkv','mp4','mp3','wav'); if(!in_array($ext,$arrExt)) { $data['sta'] = FALSE; $data['msg'] = '不支持此类型文件的上传!'; } //设置预览目录 $previewPath = 'upload/preview/'; creatDir($previewPath); if($file['error'] == 0) { if(isset($param1) && isset($param2)) { //需要用到$param1和$param2的一些其他操作... //文件上传到预览目录 $previewName = 'pre_'.md5(mt_rand(1000,9999)).time().'.'.$ext; $previewSrc = $previewPath.$previewName; if(!move_uploaded_file($file['tmp_name'],$previewSrc)) { $data['sta'] = FALSE; $data['msg'] = '上传失败!'; } else { $data['previewSrc'] = $previewSrc; } } } echo json_encode($data); //获取文件扩展名 function getExt($filename) { $ext = pathinfo($filename, PATHINFO_EXTENSION); return $ext; } //创建目录并赋权限 function creatDir($path) { $arr = explode('/',$path); $dirAll = ''; $result = FALSE; if(count($arr) > 0) { foreach($arr as $key=>$value) { $tmp = trim($value); if($tmp != '') { $dirAll .= $tmp.'/'; if(!file_exists($dirAll)) { mkdir($dirAll,0777,true); } } } } }
三、效果图:
相关文章推荐
- 一个关于if else容易迷惑的问题
- PHP5.2.*防止Hash冲突拒绝服务攻击的Patch
- 深入理解PHP之匿名函数
- 自动共享和上传文件到兼容的托管站点
- JSP/PHP基于Ajax的分页功能实现
- 关于PHP通过PDO用中文条件查询MySQL的问题。
- 什么是设计模式
- PHP数据库长连接mysql_pconnect的细节
- Php Installing An Expansion
- DVI 视频接口图文解析
- 实现FTP整站上传的批处理代码
- asp防止上传图片木马原理解析
- 批处理向FTP上传具有指定属性的文件(增量备份)
- PHP+Apache在Windows 9x下的安装和配置
- IIS 6 的 PHP 最佳配置方法
- 安装Apache和PHP的一些补充
- Linux Apache+MySQL+PHP
- 建立Apache+PHP+MySQL数据库驱动的动态网站
- PHP 5.3.0 安装分析心得