虚位以待(AD)
虚位以待(AD)
首页 > 网页特效 > JavaScript > JavaScript 上传文件(psd,压缩包等),图片,视频的实现方法

JavaScript 上传文件(psd,压缩包等),图片,视频的实现方法
类别:JavaScript   作者:码皇   来源:互联网   点击:

本文通过实例代码给大家介绍了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,压缩包等),图片,视频功能,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

相关热词搜索: js 上传文件