伊利丹
伊利丹
  • 发布:2016-01-14 16:31
  • 更新:2016-01-15 10:02
  • 阅读:1740

计算图片MD5我有个小问题

分类:HTML5+

就是按照你评论下方改了一下,发现还是报
Uncaught TypeError: Illegal constructor,这是为啥呀

2016-01-14 16:31 负责人:无 分享
已邀请:
LFZ

LFZ

非法构造函数,你怎么用的?

  • 伊利丹 (作者)

    function img_md5(img_path){

    //根据传进来的图片路径获取操作对象

    plus.io.resolveLocalFileSystemURL(img_path,function(entry){

    var fileReader = new plus.io.FileReader();

    fileReader.readAsDataURL(entry);

    fileReader.onloadend = function(evt){

    //抽取DataURL中的数据部分,并进行Base64解码

    console.log(evt.target.result)

    var bin = atob(evt.target.result.split(',')[1]);

    // 创建空的Uint8Array

    var buffer = new Uint8Array(bin.length);

    //将图像数据逐字节放入Uint8Array中

    for (var i = 0; i < bin.length; i++) {

    buffer[i] = bin.charCodeAt(i);

    };

    //利用Uint8Array创建Blob对象

    var blob = new Blob([buffer.buffer], {type: "image/jpeg"});

    var fileReader = new FileReader();

    fileReader.readAsBinaryString(blob)

    // //提取成功

    fileReader.onload=function(evt){

    if(evt.target.readyState == FileReader.DONE){

    //二进制数据结果

    var imgFlag = evt.target.result;

    //进行md5加密

    var spark = new SparkMD5();

    spark.appendBinary(imgFlag);

    return spark.end();

    }

    }

    }

    })

    }

    2016-01-14 16:40

  • 伊利丹 (作者)

    就是修改了type: "image/jpeg",可是还是会报错。然后我调用的时候是img_md5(获取到的图片)路径

    2016-01-14 16:43

LFZ

LFZ

//计算图片md5  
        function img_md5(img_path) {//文件绝对路径  
            plus.io.resolveLocalFileSystemURL(img_path, function(entry) {  
                var fileReader = new plus.io.FileReader();  
                fileReader.readAsDataURL(entry);  
                fileReader.onloadend = function(evt) {  
                    var format="image/jpeg";  
                    //抽取DataURL中的数据部分,从Base64格式转换为二进制格式  
                    var bin = atob(evt.target.result.split(',')[1]);  
                    //创建空的Uint8Array  
                    var buffer = new Uint8Array(bin.length);  
                    //将图像数据逐字节放入Uint8Array中  
                    for (var i = 0; i < bin.length; i++) {  
                        buffer[i] = bin.charCodeAt(i);  
                    };  
                    //利用Uint8Array创建Blob对象  
                    blob = new Blob([buffer.buffer], {type : format});  
                    var fileReader1 = new FileReader();  
                    fileReader1.readAsBinaryString(blob);  
                    fileReader1.onload = function(evt) {  
                        if (evt.target.readyState == FileReader.DONE) {  
                            var imgblob = evt.target.result;  
                            var sparkMD5 = new SparkMD5();  
                            sparkMD5.appendBinary(imgblob);  
                            var MD5 = sparkMD5.end();  
                            console.log("MD5:" + MD5);  
                        }  
                    };  
                }  
            }, function(e) {  
                console.log("Resolve file URL failed: " + e.message);  
            });  
        }
LFZ

LFZ

如果还是有错,看看是运行到哪一句出错。

  • 伊利丹 (作者)

    你提到的绝对路径,是不是我的绝对路径获取方法不对?

    2016-01-15 10:03

  • 伊利丹 (作者)

    请问您有具体联系方式吗?现在项目卡这了,挺急的。谢谢了。

    2016-01-15 10:10

伊利丹

伊利丹 (作者)

按照@<span id="transmark"></span>LFZ 您的改法。试了一下,报如下错误。,非法构造函数是按了确定以后报的。

该问题目前已经被锁定, 无法添加新回复