七牛Javascript SDK无法上传aiv、mp4、mp3


开发&测试环境
- 操作系统:Window 7 专业版 32位 SP1。
- 浏览器:Google Chrome 版本 42.0.2311.90 m。

使用工具及版本:
1. 七牛JS-SDK v1.0.4-beta
下载地址: https://github.com/qiniu/js-sdk/archive/v1.0.4-beta.zip
2. Plupload插件 plupload-2.1.2
下载地址: https://github.com/moxiecode/plupload/archive/v2.1.2.zip

测试过能上传成功的文件:
- 图片(png/jpg/bmp):测试文件大小范围在 几百KB 至 8MB左右,直传/分块 均上传成功。
- rar压缩包,测试文件大小范围在 10几MB 至 300百兆左右,分块 均上传成功。

测试上传失败的文件:
- 视频(avi/mp4):测试文件大小范围在 16MB 至 90MB左右,均上传失败。
- 音频(mp3):测试文件大小范围在 4MB左右,均上传失败。


 **注意:**只要将上传失败的视频文件扩展名更名为 “.flv” 就能成功上传。

错误截图
七牛官方示例错误截图:
图片描述

我自己的错误截图:
图片描述

我的HTML代码


 <!doctype html>
<html>
<head>
   <meta charset="utf-8">
   <title>七牛图片上传 Demo </title>
</head>

<body>

    <div id="container">
        <input type="file" id="fileToUpload">
    </div>
    <div id="msg"></div>

    <script type="text/jscript" src="/scripts/jquery-latest.min.js"></script>
    <script type="text/jscript" src="./src/qiniu.js"></script>
    <script type="text/jscript" src="./plupload-2.1.2/js/moxie.js"></script>
    <script type="text/jscript" src="./plupload-2.1.2/js/plupload.dev.js"></script>
    <script type="text/javascript">
       //具体Javascript脚本代码见下面“我的Javascript代码”。
    </script>
</body>
</html>

我的Javascript代码


 <script type="text/javascript">
    var inputFile = $('#fileToUpload');
    var msg = $('#msg');
    var uploader = Qiniu.uploader({
                    runtimes: 'html5,flash,html4',    //上传模式,依次退化
                    browse_button: 'fileToUpload',       //上传选择的点选按钮,**必需**
                    //若未指定uptoken_url,则必须指定 uptoken ,uptoken由其他程序生成
                    uptoken : '此处省略。。。。。',
                    save_key: true,        // 默认 false。若在服务端生成uptoken的上传策略中指定了 `sava_key`,则开启,SDK在前端将不对key进行任何处理
                    domain: 'http://xxxxxxxx.com1.z0.glb.clouddn.com/',
                    container: 'container',//上传区域DOM ID,默认是browser_button的父元素,
                    max_file_size: '1000mb',           //最大文件体积限制
                    flash_swf_url: './plupload-2.1.2/js/Moxie.swf',  //引入flash,相对路径
                    max_retries: 0,                   //上传失败最大重试次数
                    dragdrop: true,                   //开启可拖曳上传
                    drop_element: 'container',        //拖曳上传区域元素的ID,拖曳文件或文件夹后可触发上传
                    chunk_size: '4mb',                //分块上传时,每片的体积
                    auto_start: true,                 //选择文件后自动上传,若关闭需要自己绑定事件触发上传
  init: {
    'FilesAdded': function(up, files) {
        plupload.each(files, function(file) {
            // 文件添加进队列后,处理相关的事情
            msg.append(' FilesAdded 事件(文件添加进队列后,处理相关的事情)<br />');
        });
    },
    'BeforeUpload': function(up, file) {
           // 每个文件上传前,处理相关的事情
           msg.append(' BeforeUpload 事件(每个文件上传前,处理相关的事情)<br />');
    },
    'UploadProgress': function(up, file) {
           // 每个文件上传时,处理相关的事情
           var percent = Math.round(file.loaded / file.size * 100);
           msg.append(' UploadProgress 事件(每个文件上传时,处理相关的事情),已上传:' +  percent + '%<br />');
    },
    'FileUploaded': function(up, file, info) {
           // 每个文件上传成功后,处理相关的事情
           // 其中 info 是文件上传成功后,服务端返回的json,形式如
           // {
           //    "hash": "Fh8xVqod2MQ1mocfI4S4KpRL6D98",
           //    "key": "gogopher.jpg"
           //  }
           // 参考http://developer.qiniu.com/docs/v6/api/overview/up/response/simple-response.html
           // var domain = up.getOption('domain');
           // var res = parseJSON(info);
           // var sourceLink = domain + res.key; 获取上传成功后的文件的Url
           msg.append(' FileUploaded 事件(每个文件上传成功后,处理相关的事)' + JSON.stringify(info) + '<br />');
    },
    'Error': function(up, err, errTip) {
           //上传出错时,处理相关的事情<br>
           msg.append(' Error 事件(上传出错时,处理相关的事情)<br />');
    },
    'UploadComplete': function() {
           //队列文件处理完毕后,处理相关的事情
           msg.append(' UploadComplete 事件(队列文件处理完毕后,处理相关的事情)<br />');
    },
    'Key': function(up, file) {
        // 若想在前端对每个文件的key进行个性化处理,可以配置该函数
        // 该配置必须要在 unique_names: false , save_key: false 时才生效
        var key = "";
        // do something with key here
        return key
    }
}
});
</script>

jssdk 七牛云存储 七牛问题

火星丿小朋友 10 years, 5 months ago

你是否目前还是体验用户,体验用户目前还是只能上传图片和纯文本文件,音视频文件还是需要升级成为标准用户之后才能进行上传。

Gordius answered 10 years, 5 months ago

Your Answer