JavaScript 上传文件(psd,压缩包等),图片,视频的实现方法
时间:2019-03-30
本文章向大家介绍JavaScript 上传文件(psd,压缩包等),图片,视频的实现方法,主要包括JavaScript 上传文件(psd,压缩包等),图片,视频的实现方法使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
废话不多说了,直接给大家贴代码了,具体代码如下所示:
// 上传目标触发点 <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; //} }; }
注:里面的细节还可以继续封装
以上所述是小编给大家介绍的JavaScript 上传文件(psd,压缩包等),图片,视频功能,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!
- AI 玩微信跳一跳的正确姿势——跳一跳 Auto-Jump 算法详解
- 干货 | 深入理解Python装饰器
- 11g dataguard使用总结(r5笔记第12天)
- centos7.4下配置django+uwsgi+nginx
- 11g rac配置scan ip(r6笔记第30天)
- 【C++概念】---vector用法
- 浅谈Orabbix监控指标(r6笔记第27天)
- Orabbix定制监控Oracle的简单配置(r6笔记第26天)
- 【java基础】 线程实例
- 记一次数据库的分析和优化建议(r6笔记第24天)
- linux (ubantu)安装最新版python3.6,以及直接安装anaconda
- 【java基础】匿名类
- 朴素贝叶斯法 2016年11月11日
- 11g中关于控制文件自动备份的改进(r6笔记第22天)
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Codeforces Round #502 (in memory of Leopoldo Taravilse, Div. 1 + Div. 2)C. The Phone Number
- Codeforces Beta Round #3 C. Tic-tac-toe
- [记录] 数据库中,根据经纬度,查询距离最近的地点
- PAT (Basic Level) Practice (中文)1010 一元多项式求导 (25 分)
- R语言随机森林模型中具有相关特征的变量重要性
- PAT (Basic Level) Practice (中文)1009 说反话 (20 分)
- Codeforces Beta Round #8 A. Train and Peter
- Codeforces Round #559 (Div. 2)B. Expansion coefficient of the array
- Codeforces Beta Round #72 (Div. 1 Only)B. Doctor
- pygame游戏常用方法
- node-blog:用 node 搭建的个人开源博客
- 2018-2019 ICPC, NEERC, Southern Subregional Contest D. Garbage Disposal
- 「查缺补漏」JavaScript执行上下文-执行栈
- 树状数组 _ 求逆序数
- PAT (Basic Level) Practice (中文)1012 数字分类 (20 分)