js上传视频(jquery.form.js)
// 上传目标触发点
<input type="file" class="upvideo" name="upvideo" id="fileupload1" />
// 引入插件
<script type="text/javascript" src="{$IMG}/bstage/js/jquery.form.js" language="javascript"></script>
/**方法调用**/
setFileUpload({
name: 'fileupload1',
backfun: upback1,
beforefun: checkUp1,
loadfun:loadup,
phpUrl: '/ossphp/php/get.php?ft=video'
});
// 上传前验证
function checkUp1(n){
// 查看视频大小(mb)
var fileObj = document.getElementById(n).files[];
var relSize = parseInt(fileObj.size//);
if(relSize > ){ // 大于10mb
alert('提示','视屏超过10MB,请重新上传!');
return false;
}
// 查看视频类型
var tv_id =document.getElementById(n).value;//根据id得到值
var index= tv_id.indexOf(".");
tv_id=tv_id.substring(index).toLowerCase();
if(tv_id!=".rb"&&tv_id!=".rmvb"&&tv_id!=".mp4"&&tv_id!=".flv"){
alert("提示","不是指定视频格式,重新选择");
return false;
}
return true;
}
//上传中
function loadup(){
}
// 上传成功后操作
function upback1(data){
// data 成功后的参数
}
/**上传功能封装**/
function setFileUpload(options){
var n = options.name;
var phpUrl = options.phpUrl;
var backfun = options.backfun;
var beforefun = options.beforefun;
var loadfun = options.loadfun;
var accessid = '';
var accesskey = '';
var host = '';
var policyBase64 = '';
var signature = '';
var callbackbody = '';
var filename = '';
var dirname = '';
var expire = ;
var upflag = true;
if(phpUrl==null || phpUrl==''){console.log('phpurl is null');return false;}
if(n==null || n==''){console.log('object is null');return false;}
var backfun1 = $.isFunction(backfun) ?
backfun :
function(success, error){
console.log('no backfun');
};
var beforefun1 = $.isFunction(beforefun) ?
beforefun :
function(success, error){
return true;
};
var loadfun1 = $.isFunction(loadfun) ?
loadfun :
function(success, error){
return true;
};
var obj = $('#'+n);
obj.change(function(){
if(beforefun1(n)){
if(n=="fileupload1"){
fileEmb1(n);
}else if(n == 'fileupload2'){
fileEmb2(n);
}else if(n == 'fileupload3'){
fileEmb3(n);
}
}
});
function fileEmb1(n){
//oss add
$("#"+n).attr('name','file');
var file1 = $("#"+n).val();
var fileName = getFileName(file1);
phpUrl = phpUrl + '&fname='+fileName;
get_signature();
var ldot = fileName.lastIndexOf(".");
var filetype = fileName.substring(ldot + );
$("#"+n).wrap("<form id='myupload1' action='"+host+"' method='post' enctype='multipart/form-data'></form>");
$("#myupload1").prepend("<input type='hidden' value='' name='name' id='name'></input><input type='hidden' value='"+dirname+"."+filetype+"' name='key' ></input><input type='hidden' value='"+policyBase64+"' name='policy' id='policy'></input><input type='hidden' value='"+accessid+"' name='OSSAccessKeyId' id='OSSAccessKeyId'></input><input type='hidden' value='200' name='success_action_status' id='success_action_status' ></input><input type='hidden' value='"+callbackbody+"' name='callback' id='callback'></input><input type='hidden' value='"+signature+"' name='signature' id='signature'></input>");
//speed_width进度条类
//percent进度数字类
//load_content上传区域
$('#myupload1').ajaxSubmit({
dataType: 'json', //数据格式为json
data:'',
beforeSend: function() {
loadfun1();
if(!upflag)return false;
upflag=false;
},
uploadProgress: function(event, position, total, percentComplete) {
$('.upck_b').hide();
$('.videspeed').show();
percentComplete = percentComplete>=?:percentComplete;
var percentVal = percentComplete + '%'; //获得进度
$('.speed_num').css('width',percentVal);
$('.persent_em').html(percentComplete);
},
success: function(data) { //成功
$('.load_content').html('<em >图片上传</em>');
//上传成功后还原
$("#"+n).attr('name','');
setFileUpload(options);
upflag=true;
backfun1(data);
},
error:function(xhr){ //上传失败
$('.load_content').html('<em >图片上传</em>');
upflag=true;
}
});
}
function getFileName(path){
var pos1 = path.lastIndexOf('/');
var pos2 = path.lastIndexOf('\\');
var pos = Math.max(pos1, pos2)
if( pos< )
return path;
else
return path.substring(pos+);
}
now = timestamp = Date.parse(new Date()) / ;
new_multipart_params = '';
function send_request(){
var xmlhttp = null;
if (window.XMLHttpRequest)
{
xmlhttp=new XMLHttpRequest();
}
else if (window.ActiveXObject)
{
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
if (xmlhttp!=null && phpUrl)
{
//phpUrl = '/ossphp/php/get.php?ft=resources';
xmlhttp.open( "GET", phpUrl, false );
xmlhttp.send( null );
return xmlhttp.responseText;
}
else
{
alert("Your browser does not support XMLHTTP.");
}
};
function get_signature()
{
//可以判断当前expire是否超过了当前时间,如果超过了当前时间,就重新取一下.3s 做为缓冲
now = timestamp = Date.parse(new Date()) / ;
//if (expire < now + 3)
//{
body = send_request()
var obj = eval ("(" + body + ")");
host = obj['host']
policyBase64 = obj['policy']
accessid = obj['accessid']
signature = obj['signature']
expire = parseInt(obj['expire'])
callbackbody = obj['callback']
dirname = obj['dir']
return true;
//}
};
}
// 上传目标触发点
<input type=
"file"
class=
"upvideo"
name=
"upvideo"
id=
"fileupload1"
/>
// 引入插件
<script type=
"text/javascript"
src=
"{$IMG}/bstage/js/jquery.form.js"
language=
"javascript"
></script>
/**方法调用**/
setFileUpload({
name:
'fileupload1'
,
backfun: upback1,
beforefun: checkUp1,
loadfun:loadup,
phpUrl:
'/ossphp/php/get.php?ft=video'
});
// 上传前验证
function
checkUp1(n){
// 查看视频大小(mb)
var
fileObj = document.getElementById(n).files[0];
var
relSize = parseInt(fileObj.size/1024/1024);
if
(relSize > 10){
// 大于10mb
alert(
'提示'
,
'视屏超过10MB,请重新上传!'
);
return
false
;
}
// 查看视频类型
var
tv_id =document.getElementById(n).value;
//根据id得到值
var
index= tv_id.indexOf(
"."
);
tv_id=tv_id.substring(index).toLowerCase();
if
(tv_id!=
".rb"
&&tv_id!=
".rmvb"
&&tv_id!=
".mp4"
&&tv_id!=
".flv"
){
alert(
"提示"
,
"不是指定视频格式,重新选择"
);
return
false
;
}
return
true
;
}
//上传中
function
loadup(){
}
// 上传成功后操作
function
upback1(data){
// data 成功后的参数
}
/**上传功能封装**/
function
setFileUpload(options){
var
n = options.name;
var
phpUrl = options.phpUrl;
var
backfun = options.backfun;
var
beforefun = options.beforefun;
var
loadfun = options.loadfun;
var
accessid =
''
;
var
accesskey =
''
;
var
host =
''
;
var
policyBase64 =
''
;
var
signature =
''
;
var
callbackbody =
''
;
var
filename =
''
;
var
dirname =
''
;
var
expire = 0;
var
upflag =
true
;
if
(phpUrl==
null
|| phpUrl==
''
){console.log(
'phpurl is null'
);
return
false
;}
if
(n==
null
|| n==
''
){console.log(
'object is null'
);
return
false
;}
var
backfun1 = $.isFunction(backfun) ?
backfun :
function
(success, error){
console.log(
'no backfun'
);
};
var
beforefun1 = $.isFunction(beforefun) ?
beforefun :
function
(success, error){
return
true
;
};
var
loadfun1 = $.isFunction(loadfun) ?
loadfun :
function
(success, error){
return
true
;
};
var
obj = $(
'#'
+n);
obj.change(
function
(){
if
(beforefun1(n)){
if
(n==
"fileupload1"
){
fileEmb1(n);
}
else
if
(n ==
'fileupload2'
){
fileEmb2(n);
}
else
if
(n ==
'fileupload3'
){
fileEmb3(n);
}
}
});
function
fileEmb1(n){
//oss add
$(
"#"
+n).attr(
'name'
,
'file'
);
var
file1 = $(
"#"
+n).val();
var
fileName = getFileName(file1);
phpUrl = phpUrl +
'&fname='
+fileName;
get_signature();
var
ldot = fileName.lastIndexOf(
"."
);
var
filetype = fileName.substring(ldot + 1);
$(
"#"
+n).wrap(
"<form id='myupload1' action='"
+host+
"' method='post' enctype='multipart/form-data'></form>"
);
$(
"#myupload1"
).prepend(
"<input type='hidden' value='' name='name' id='name'></input><input type='hidden' value='"
+dirname+
"."
+filetype+
"' name='key' ></input><input type='hidden' value='"
+policyBase64+
"' name='policy' id='policy'></input><input type='hidden' value='"
+accessid+
"' name='OSSAccessKeyId' id='OSSAccessKeyId'></input><input type='hidden' value='200' name='success_action_status' id='success_action_status' ></input><input type='hidden' value='"
+callbackbody+
"' name='callback' id='callback'></input><input type='hidden' value='"
+signature+
"' name='signature' id='signature'></input>"
);
//speed_width进度条类
//percent进度数字类
//load_content上传区域
$(
'#myupload1'
).ajaxSubmit({
dataType:
'json'
,
//数据格式为json
data:
''
,
beforeSend:
function
() {
loadfun1();
if
(!upflag)
return
false
;
upflag=
false
;
},
uploadProgress:
function
(event, position, total, percentComplete) {
$(
'.upck_b'
).hide();
$(
'.videspeed'
).show();
percentComplete = percentComplete>=100?99:percentComplete;
var
percentVal = percentComplete +
'%'
;
//获得进度
$(
'.speed_num'
).css(
'width'
,percentVal);
$(
'.persent_em'
).html(percentComplete);
},
success:
function
(data) {
//成功
$(
'.load_content'
).html(
'<em >图片上传</em>'
);
//上传成功后还原
$(
"#"
+n).attr(
'name'
,
''
);
setFileUpload(options);
upflag=
true
;
backfun1(data);
},
error:
function
(xhr){
//上传失败
$(
'.load_content'
).html(
'<em >图片上传</em>'
);
upflag=
true
;
}
});
}
function
getFileName(path){
var
pos1 = path.lastIndexOf(
'/'
);
var
pos2 = path.lastIndexOf(
'\\'
);
var
pos = Math.max(pos1, pos2)
if
( pos<0 )
return
path;
else
return
path.substring(pos+1);
}
now = timestamp = Date.parse(
new
Date()) / 1000;
new_multipart_params =
''
;
function
send_request(){
var
xmlhttp =
null
;
if
(window.XMLHttpRequest)
{
xmlhttp=
new
XMLHttpRequest();
}
else
if
(window.ActiveXObject)
{
xmlhttp=
new
ActiveXObject(
"Microsoft.XMLHTTP"
);
}
if
(xmlhttp!=
null
&& phpUrl)
{
//phpUrl = '/ossphp/php/get.php?ft=resources';
xmlhttp.open(
"GET"
, phpUrl,
false
);
xmlhttp.send(
null
);
return
xmlhttp.responseText;
}
else
{
alert(
"Your browser does not support XMLHTTP."
);
}
};
function
get_signature()
{
//可以判断当前expire是否超过了当前时间,如果超过了当前时间,就重新取一下.3s 做为缓冲
now = timestamp = Date.parse(
new
Date()) / 1000;
//if (expire < now + 3)
//{
body = send_request()
var
obj = eval (
"("
+ body +
")"
);
host = obj[
'host'
]
policyBase64 = obj[
'policy'
]
accessid = obj[
'accessid'
]
signature = obj[
'signature'
]
expire = parseInt(obj[
'expire'
])
callbackbody = obj[
'callback'
]
dirname = obj[
'dir'
]
return
true
;
//}
};
}
js上传视频(jquery.form.js)的更多相关文章
- 文件上传时jquery.form.js中提示form.submit SCRIPT5: 拒绝访问
利用其它控件触发file的click事件来选择文件后,使用jquery.form.js中的submit方法提交时IE报错:form.submit SCRIPT5: 拒绝访问,其它浏览器正常, < ...
- 文件上传功能 -- jquery.form.js/springmvc
距离上一篇 文件上传下载样式 -- bootstrap(http://www.cnblogs.com/thomascui/p/5370947.html)已经三周时间了,期间一直考虑怎么样给大家提交一篇 ...
- JQuery文件上传插件JQuery.upload.js的用法简介
JQuery文件上传插件,这个插件很小,用法很简单,效果却很棒.注意:JQuery版本要求1.8及以上,大家执行如果没效果,则检查JQuery版本,如果是1.8及以上,则该插件源码中的.size()需 ...
- 图片裁剪上传插件——jquery.photoClip.js
想要裁剪图片上传: 需要依赖的的插件为: [jquery.photoClip.js] 插件[iscroll-zoom.js] 插件[hammer.js] 插件 [lrz.all.bundle.js] ...
- js 上传文件模拟Form 表单
使用FormData对象 在本文章中 创建一个FormData对象 使用HTML表单来初始化一个FormData对象 使用FormData对象发送文件 利用FormData对象,你可以使用一系列的键值 ...
- jquery.form.js笔记
由于项目的原因,需要异步上传文件,网上找了找,很多都是用jquery.form插件的,于是乎找资料,调代码,做点小笔记. 官方资料:http://www.malsup.com/jquery/form/ ...
- jquery提交form表单插件jquery.form.js
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- Ajax提交form表单内容和文件(jQuery.form.js)
jQuery官网是这样介绍form.js A simple way to AJAX-ify any form on your page; with file upload and progress s ...
- jquery.form.js实现异步上传
前台页面 @{ Layout = null; } <!DOCTYPE html> <html> <head> <meta name="viewpor ...
随机推荐
- 力扣算法题—050计算pow(x, n)
#include "000库函数.h" //使用折半算法 牛逼算法 class Solution { public: double myPow(double x, int n) { ...
- Vue技巧小结(持续更新)
1. 动态生成的input自动focus 背景: input元素在需要时才插入DOM,这时元素用autofocus属性第一次是可以获取焦点,但是如果有第二个,就不再生效,所以得另外的办法. 方法: / ...
- 设计模式のDecoratorPattern(装饰器模式)----结构模式
一.产生背景 装饰器模式(Decorator Pattern)允许向一个现有的对象添加新的功能,同时又不改变其结构.这种类型的设计模式属于结构型模式,它是作为现有的类的一个包装. 这种模式创建了一个装 ...
- springboot统一异常处理类及注解参数为数组的写法
统一异常处理类 package com.wdcloud.categoryserver.common.exception; import com.wdcloud.categoryserver.commo ...
- 《JAVA程序设计》_第二周学习总结
20175217吴一凡 一.IDEA的安装和使用 参考老师的教程Intellj IDEA 简易教程. 1.IDEA的安装 因为我已经习惯了在Linux上敲代码,所以我决定将IDEA安装在虚拟机上. 首 ...
- 转://SQLNET.EXPIRE_TIME参数
DCD: Dead Connection Detection ,可以用于检测.标记僵死而没有断开会session,再由PMON进行清理,释放资源.开启DCD,只需要在服务端的sqlnet.ora文件中 ...
- PHP设计模式_工厂模式
个人理解工厂类相当于平时用的基类,只需要把类new一次然后付给一个变量,以后直接引入基类调用变量使用类里的方法即可 了解 工厂模式,工厂方法或者类生成对象,而不是在代码中直接new. 使用工厂模式,可 ...
- 004_浅析Python的GIL和线程安全
在这里我们将介绍Python的GIL和线程安全,希望大家能从中理解Python里的GIL,以及GIL的前世今生. 对于Python的GIL和线程安全很多人不是很了解,通过本文,希望能让大家对Pytho ...
- (六) JavaScript 对象
- iOS开发之CoreImage
CoreImage是iOS中的一个图像处理框架,提供了强大高效的图像处理功能,可以通过调用简单的API来使用框架所带的各种滤镜对图像进行处理. CoreImgae的三个重要组成部分:1.CIFiter ...