php七牛云大文件上传javascript

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>进度条属性上传</title>
    <link rel="stylesheet" href="__STATIC__/plugs/layui-v2.5.6/css/layui.css" media="all">
</head>
<body>
<form method="post" enctype="multipart/form-data" style="width: 80%;margin-left: 10%;margin-top: 30px">
    <input name="key"  type="hidden" value=""/>
    <input name="token"  type="hidden" value=""/>
    <input name="accept" type="hidden" />
    <input id="input-file" class="upload" type="file" value="" onchange="getPhoto(this)">
    <div class="layui-progress" lay-showPercent="true" lay-filter="demo" style="margin-top: 30px">
        <div class="layui-progress-bar layui-bg-red" lay-percent="0%"></div>
    </div>
    <br/>

    <input type="button" class="layui-btn layui-btn-primary layui-border-green" value="上传" onclick="upload()"/>
    <input type="button" value="暂停" class="layui-btn layui-btn-danger" onclick="filepause()"/>
    

</form>




<script src="https://unpkg.com/qiniu-js@2.5.4/dist/qiniu.min.js"></script>
<script src="__STATIC__/plugs/layui-v2.5.6/layui.all.js?v={$version}" charset="utf-8"></script>
<script>
    var element;
    layui.use('element', function(){
         element = layui.element;
    });
    var subObject;
    var file;

    var config = {
        useCdnDomain: true,
        region: qiniu.region.z0,//z2
    };

    var putExtra = {
        params: { 'x:name': 'qiniu'},
    };
    var compareChunks = [];
    var observable;
    var subscription;
    function getPhoto(node) {
        var imgURL = "";
        try{
            file = null;
            if(node.files && node.files[0] ){
                file = node.files[0];
            }else if(node.files && node.files.item(0)) {
                file = node.files.item(0);
            }
        }catch(e){

        }
        creatImg(imgURL,file.name);
        return imgURL;
    }

    function creatImg(imgRUL,fileName){
        $("input[name=key]").val(fileName);
        $("#totalBarColor").css("width","0%");
    }


    function upload() {
        // 设置next,error,complete对应的操作,分别处理相应的进度信息,错误信息,以及完成后的操作
        subObject = {
            next: next,
            error: error,
            complete: complete
        };
        token = "你的token,后台生成的";
        //上传
        if (!file){
            layer.msg("请先选择有效文件文件");
            return false
        }
        observable = qiniu.upload(file, file.name, token, putExtra, config);
        // 调用sdk上传接口获得相应的observable,控制上传和暂停
        subscription = observable.subscribe(subObject);
    }

    function filepause(){
        subscription.unsubscribe();
    }

    //分片上传返回response,标记上传进度
    var next = function(response) {
        var chunks = response.chunks||[];
        var total = response.total;
        element.progress('demo', total.percent + "% ");
        compareChunks = chunks;
    };

    var error = function(err) {
        //alert(err.message);
        layer.msg("上传失败")
    };

    var complete = function(res) {
        console.log(res);
        console.log(res.key);
        
    };
</script>
</body>

</html>
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值