需求场景:需要用户上传一张照片,返回给用户一个唯一的结果,比如测试类网页你拥有哪种女人气质?(移动端)
其实这种需求(不需要保存图片)的话,只需要在本地处理图片即可,不需要将图片上传到服务器。计算图片的md5值可以确保唯一性。
针对这个需求,可以使用HTML5 file api来读取文件。实现方法如下:
document.getElementById("file").addEventListener("change", function() {
var fileReader = new FileReader(), box = document.getElementById(‘box‘),
//创建md5对象(基于SparkMD5)
spark = new SparkMD5();
//每块文件读取完毕之后的处理
fileReader.onload = function(e) {
console.log("finished loading");
$(‘#box‘).append(‘<img src="‘+e.target.result+‘">‘);
console.info("计算的Hash", spark.end());
};
});
demo:
http://jsbin.com/zoputihuqe/edit?html,css,js,output
JS Bin on jsbin.com<script src="http://static.jsbin.com/js/embed.min.js?3.36.10"></script>
之前做的一个活动页面,上传照片测气质,只在本地操作图片,并根据MD5值返回唯一结果: