jquery.fileupload.js插件使用--单视频或音频上传预览
来源:互联网 发布:vue是什么软件 编辑:程序博客网 时间:2024/04/29 17:58
一、前台代码:
<!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); } } } }}
三、效果图:
1 2
- jquery.fileupload.js插件使用--单视频或音频上传预览
- jquery.fileupload.js插件使用--多视频或音频上传预览
- jquery.fileupload.js插件使用初探--单图片上传预览
- jquery.fileupload.js插件使用初探--多图片上传预览
- jquery.fileupload.js插件使用--前台上传预览辅助插件类
- jquery.fileupload.js插件使用--后台处理单个上传文件类
- 关于bootstrap fileupload.js上传插件的使用之一
- 使用FileUpload控件上传前预览图片
- 使用FileUpload上传并预览图片
- 使用FileUpload上传前预览图片
- 使用FileUpload控件上传前预览图片
- 使用FileUpload控件上传前预览图片
- 转:使用FileUpload上传并预览图片
- 使用FileUpload控件上传前预览图片
- 使用jquery-fileupload.js实现文件上传-webx3
- JQUERY 图片上传预览插件
- uploadify(jquery)插件的使用及图片上传预览
- jquery插件FileUpload实现异步上传文件
- 当键盘出现的时候,如何让UITextField自动上移
- CSS3中如何使元素曲线运动
- 构造函数constructor
- 非原创,jquery.pagination 分页插件
- 【poj3233】Matrix Power Series——矩阵快速幂
- jquery.fileupload.js插件使用--单视频或音频上传预览
- 《Android源码设计模式解析与实战》——原型模式
- Servlet API中类的关系
- Android(二)遇到的小问题
- 详解 CALayer 和 UIView 的区别和联系
- sleep在windows下和linux的不同
- 使用libmemcached的c++客户端
- iOS推送之远程推送
- 视频流中的DTS/PTS到底是什么