代码粗糙,提供一个思路而已,别较真,创建一个HTML页,将代码块复制粘贴进去就能使用

CSS部分

.content_div_all{
	    width: 100%;
	}
	.upload_video{
	    background-image: url(https://www.oschina.net/img/portrait.gif);
	    width: 50px;
	    height: 55px;
	    background-size: 55px;
	    display: block;
	    position: absolute;
	    top: 88px;
	    left: 35px;
	    z-index: 999;
	    border: none;
	}
	.div_upload{
	    position: fixed;
	    background: white;
	    width: 70%;
	    height: 225px;
	    z-index: 3000;
	    left: 15%;
	    text-align: center;
	    top: 25%;
	    -moz-border-radius: 6px;
	    -webkit-border-radius: 6px;
	    -ms-border-radius: 6px;
	    -o-border-radius: 6px;
	}
	.div_upload>p{
	    background-color: #79ABC5;
	    color: white;
	    font-size: 17px;
	}
	.div_heimu{
	    width: 100%;
	    height: 100%;
	    background-color: rgba(6,6,0.37);
	    position: fixed;
	    top: 0;
	    z-index: 3001;
	}
	.progressbar{
	    width: 0%;
	    margin-left: 9%;
	    margin-top: 20px;
	    background-color: rgb(121,171,197);
	    background-image: linear-gradient(45deg,rgba(255,255,0.14902) 25%,transparent 25%,transparent 50%,0.14902) 50%,0.14902) 75%,transparent 75%,transparent);
	    background-size: 40px 40px;
	    Box-shadow: rgba(0,0.14902) 0px -1px 0px 0px inset;
	    Box-sizing: border-Box;
	    color: rgb(255,255);
	    display: block;
	    float: left;
	    font-size: 10px;
	    height: 8px;
	    line-height: 20px;
	    text-align: center;
	    transition-delay: 0s;
	    transition-duration: 0.6s;
	    transition-property: width;
	    transition-timing-function: ease;
	}
	.progressbar>span{
	    padding-top: 0px;
	    display: block;
	    font-size: 10px;
	    float: left;
	    width: 91%;
	    white-space: Nowrap;
	}
	.progressbar_all{
	    height: 87px;
	    width: 85%;
	}
	.videoFile{
	    display: block;
	    width: 90%;
	    margin-left: 6%;
	}
	.btn_right,.btn_left{
	    font-size: 16px;
	    display: inline-block;
	    border: solid 1px #79ABC5;
	    color: #79ABC5;
	    border-radius: 3px;
	    -moz-border-radius: 3px;
	    -webkit-border-radius: 3px;
	    -ms-border-radius: 3px;
	    -o-border-radius: 3px;
	    width: 30%;
	}
	.btn_right{
	    float: right;
	    margin-right: 27px;
	}
	.btn_left{
	    float: left;
	    margin-left: 27px;
	}

HTML部分

<button id="upload_video" class="upload_video"></button>
	<div class="div_heimu" id="div_heimu" style="display:none">
	    <div class="div_upload">
	        <p>上传视频</p>
	            <input id="videoFile" class="videoFile" type="file" name="file"/>
	            <div class="progressbar_all" id="progressbar_all">
	                <p></p>
	                <div data-percent="" id="progressbar" class="progressbar">
	                    <span id="bfb_span"></span>
	                </div>
	            </div>
	            <div class="btn_upload">
	                <a id="upload_video2" class="btn_left">上传</a>
	                <a id="btn_right">关闭</a>
	            </div>
	    </div>
	</div>

JS部分

$(function(){
		//显示
		$('#upload_video').click(function(){
			$('#div_heimu').show();
		});
		//隐藏
		$('#btn_right').click(function(){
			$('#div_heimu').hide();
		});
		$('#upload_video2').click(function(){
		    var video = $('#videoFile').get(0).files[0];
		    //前台check一次
		    if(undefined == video ){
		        $('#progressbar_all>p').text("请先选择视频再上传");
		        setTimeout(function() {$('#progressbar_all>p').text("")},2000);
		    }else{
		        var formData = new FormData();
		        var getjsfile = $('#getjsfile').val();
		        formData.append('file',video);
		        var videoName = video.name;//文件名
		        var videoSize = video.size;//文件大小
		        var xianzhiSize = 1024*1024*100; //限制100M
		        var videoNameArr = videoName.split('.');
		        var houzhui = videoNameArr[videoNameArr.length-1].toupperCase();
		        if(houzhui == "MP4"|| houzhui == "MPEG"|| houzhui == "RMVB"|| houzhui == "AVI"|| houzhui == "MOV"){
		            if(videoSize>xianzhiSize){
		                $('#progressbar_all>p').text("文件超过限制大小,请上传小于"+(xianzhiSize/1000/1000)+"M的文件");
		                setTimeout(function() {$('#progressbar_all>p').text("")},2000);
		            }else{
		                $('#progressbar_all>p').text('');
		                $.ajax({ 
		                    url: getjsfile,type: 'POST',data: formData,dataType: 'json',contentType: false,processData: false,xhr: function(){
		                        //取得xmlhttp异步监听
		                        var xhr = $.ajaxSettings.xhr();
		                        if(onprogress && xhr.upload) {
		                            xhr.upload.addEventListener('progress',onprogress,false);
		                            return xhr;
		                        }
		                    },success: function (returndata) {
		                        //成功回调
		                        var data = returndata['fileinfo'];
		                        if(data == false){
		                            $('#progressbar').css('width','0%');
		                            $('#bfb_span').text('');
		                            $('#progressbar_all>p').text(returndata['msg']);
		                            setTimeout(function() {$('#progressbar_all>p').text("")},2000);
		                        }else{
		                            var video_new = getVideoHtml(data['file']['savename']);
		                            ue.setContent(video_new,true);
		                            $('#progressbar').css('width','0%');
		                            $('#bfb_span').text('');
		                            hide_upload();
		                        }
		                    },error: function (returndata){ 
		                        $('#progressbar').css('width','0%');
		                        $('#bfb_span').text('');
		                        $('#progressbar_all').html('<p>上传过程中发生未知错误,请重新上传</p>');
		                    }  
		                });  
		            }
		        }else{
		            $('#progressbar_all>p').text("文件格式不正确!");
		            setTimeout(function() {$('#progressbar_all>p').text("")},2000);
		        }
		    }
		});
		function onprogress(evt){
		    var loaded = evt.loaded;                  //已经上传大小情况
		    var tot = evt.total;                      //附件总大小
		    var per = Math.floor(100*loaded/tot);     //已经上传的百分比 
		    $('#bfb_span').html( per +'%'+'('+loaded+'/'+tot+')' );
		    $('#progressbar').css('width',per +'%');
		}
		 
		function getVideoHtml (filename) {
		    var dateTime = new Date();
		    var getTimeYM = dateTime.Format("yyyy-MM")+'/';
		    var getTimeYMD = dateTime.Format("yyyy-MM-dd")+'/';
		    var srcHtml = 'http://xxxxxxxx.oss-cn-shanghai.aliyuncs.com/'+getTimeYM+getTimeYMD+filename;
		    var contentHtml = "";
		        contentHtml += '<p style="text-align:center;">';
		        contentHtml += '<video width="80%" height="250px" controls="controls">';
		        contentHtml += '<source src="'+srcHtml+'" type="video/mp4"/> ';
		        contentHtml += '</video>';
		        contentHtml += '</p>';
		    return contentHtml;
		}
		//格式年月日
		Date.prototype.Format = function(fmt) {
		    var o = {
		        "M+": this.getMonth() + 1,//月份 
		        "d+": this.getDate(),//日 
		        "h+": this.getHours(),//小时 
		        "m+": this.getMinutes(),//分 
		        "s+": this.getSeconds(),//秒 
		        "q+": Math.floor((this.getMonth() + 3) / 3),//季度 
		        "S": this.getMilliseconds() //毫秒 
		    };
		    if (/(y+)/.test(fmt)) fmt = fmt.replace(RegExp.$1,(this.getFullYear() + "").substr(4 - RegExp.$1.length));
		    for (var k in o) if (new RegExp("(" + k + ")").test(fmt)) fmt = fmt.replace(RegExp.$1,(RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));
		    return fmt;
		}
	});

AJAX上传视频带进度条,上传成功之后回显的更多相关文章

  1. 应用程序关闭时的iOS任务

    我正在构建一个应用程序,通过ajax将文件上传到服务器.问题是用户很可能有时不会有互联网连接,并且客户希望在用户重新连接时安排ajax调用.这可能是用户在离线时安排文件上传并关闭应用程序.应用程序关闭时可以进行ajax调用吗?

  2. android – Phonegap本地构建 – jquery ajax错误:readystate 0 responsetext status 0 statustext error

    解决方法您是否在索引文件中包含了内容安全元标记?

  3. Ajax简单的异步交互及Ajax原生编写

    一提到异步交互大家就会说ajax,仿佛ajax这个技术已经成为了异步交互的代名词.那下面将研究ajax的核心对象

  4. Ajax跨域问题的解决办法汇总(推荐)

    本文给大家分享多种方法解决Ajax跨域问题,非常不错具有参考借鉴价值,感兴趣的朋友一起学习吧

  5. ajax编写简单的登录页面

    这篇文章主要为大家详细介绍了ajax编写简单登录页面的具体代码,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

  6. ajax从JSP传递对象数组到后台的方法

    今天小编就为大家分享一篇ajax从JSP传递对象数组到后台的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

  7. 解决ajax返回验证的时候总是弹出error错误的方法

    这篇文章主要介绍了解决ajax返回验证的时候总是弹出error错误的方法,感兴趣的小伙伴们可以参考一下

  8. 使用AJAX完成用户名是否存在异步校验

    这篇文章主要介绍了使用AJAX完成用户名是否存在异步校验的相关资料,需要的朋友可以参考下

  9. ajax实现无刷新省市县三级联动

    这篇文章主要为大家详细介绍了ajax实现无刷新省市县三级联动的相关资料,利用三层架构实现,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

  10. jQuery Ajax 实现分页 kkpager插件实例代码

    本文通过实例代码给大家讲解了jQuery Ajax 实现分页 kkpager插件功能,需要的的朋友参考下吧

随机推荐

  1. xe-ajax-mock 前端虚拟服务

    最新版本见Github,点击查看历史版本基于XEAjax扩展的Mock虚拟服务插件;对于前后端分离的开发模式,ajax+mock使前端不再依赖后端接口开发效率更高。CDN使用script方式安装,XEAjaxMock会定义为全局变量生产环境请使用xe-ajax-mock.min.js,更小的压缩版本,可以带来更快的速度体验。

  2. vue 使用 xe-ajax

    安装完成后自动挂载在vue实例this.$ajaxCDN安装使用script方式安装,VXEAjax会定义为全局变量生产环境请使用vxe-ajax.min.js,更小的压缩版本,可以带来更快的速度体验。cdnjs获取最新版本点击浏览已发布的所有npm包源码unpkg获取最新版本点击浏览已发布的所有npm包源码AMD安装require.js安装示例ES6Module安装通过Vue.use()来全局安装示例./Home.vue

  3. AJAX POST数据中文乱码解决

    前端使用encodeURI进行编码后台java.net.URLDecoder进行解码编解码工具

  4. Koa2框架利用CORS完成跨域ajax请求

    实现跨域ajax请求的方式有很多,其中一个是利用CORS,而这个方法关键是在服务器端进行配置。本文仅对能够完成正常跨域ajax响应的,最基本的配置进行说明。这样OPTIONS请求就能够通过了。至此为止,相当于仅仅完成了预检,还没发送真正的请求呢。

  5. form提交时,ajax上传文件并更新到&lt;input&gt;中的value字段

  6. ajax的cache作用

    filePath="+escape;},error:{alert;}});解决方案:1.加cache:false2.url加随机数正常代码:网上高人解读:cache的作用就是第一次请求完毕之后,如果再次去请求,可以直接从缓存里面读取而不是再到服务器端读取。

  7. 浅谈ajax上传文件属性contentType = false

    默认值为contentType="application/x-www-form-urlencoded".在默认情况下,内容编码类型满足大多数情况。在这里,我们主要谈谈contentType=false.在使用ajax上传文件时:在其中先封装了一个formData对象,然后使用post方法将文件传给服务器。说到这,我们发现在JQueryajax()方法中我们使contentType=false,这不是冲突了吗?这就是因为当我们在form标签中设置了enctype=“multipart/form-data”,

  8. 909422229_ajaxFileUpload上传文件

    ajaxFileUpload.js很多同名的,因为做出来一个很容易。我上github搜AjaxFileUpload出来很多类似js。ajaxFileUpload是一个异步上传文件的jQuery插件传一个不知道什么版本的上来,以后不用到处找了。语法:$.ajaxFileUploadoptions参数说明:1、url上传处理程序地址。2,fileElementId需要上传的文件域的ID,即的ID。3,secureuri是否启用安全提交,默认为false。4,dataType服务器返回的数据类型。6,error

  9. AJAX-Cache:一款好用的Ajax缓存插件

    原文链接AJAX-Cache是什么Ajax是前端开发必不可少的数据获取手段,在频繁的异步请求业务中,我们往往需要利用“缓存”提升界面响应速度,减少网络资源占用。AJAX-Cache是一款jQuery缓存插件,可以为$.ajax()方法扩展缓存功能。

  10. jsf – Ajax update/render在已渲染属性的组件上不起作用

    我试图ajax更新一个有条件渲染的组件。我可以确保#{user}实际上是可用的。这是怎么引起的,我该如何解决呢?必须始终在ajax可以重新呈现之前呈现组件。Ajax正在使用JavaScriptdocument.getElementById()来查找需要更新的组件。但是如果JSF没有将组件放在第一位,那么JavaScript找不到要更新的内容。解决方案是简单地引用总是渲染的父组件。

返回
顶部