asp.net和js读取文件的MD5值的方法
前言
文件的md5值,即文件签名,为了验证文件的正确性,是否被恶意篡改等。每个文件有一个唯一的md5值。
最近公司开发的app文件包的校验就有用到文件md5值。
一、asp.net获取
①和上传文件一样,得到本地文件的集合,方法很多,我是用Ajax upload.js插件上传 在这里省略
②得到imgFile代码如下 sb.ToString()即为该文件的MD5值。
HttpPostedFile imgFile = context.Request.Files["imgFile"];//本地文件的集合
MD5 md5 = new MD5CryptoServiceProvider();
byte[] retVal = md5.ComputeHash(imgFile.InputStream);
StringBuilder sb = new StringBuilder();
for (int i = ; i < retVal.Length; i++)
{
sb.Append(retVal[i].ToString("x2"));
}
context.Response.Write(sb.ToString());
二、js获取文件的MD5
第一种方法获取文件MD5值得一个弊端是需要将文件流上传到服务端,当文件比较大的时候,读取会比较忙。所以后面从网上找到用js读取本地文件md5值得方法:
html代码
<input id="ChooseFile" type="file" value="上传文件"/>
<div id="log"></div>
js代码
<script src="http://cdn.rawgit.com/satazor/SparkMD5/master/spark-md5.min.js"></script>
<script>
var log = document.getElementById("log");
document.getElementById("ChooseFile").addEventListener("change", function () {
var blobSlice = File.prototype.slice || File.prototype.mozSlice || File.prototype.webkitSlice,
file = this.files[0],
chunkSize = 2097152, // 将文件切割成2m读取 因为文件太大可能读取失败
chunks = Math.ceil(file.size / chunkSize),
currentChunk = 0,
spark = new SparkMD5.ArrayBuffer(),
frOnload = function (e) {
spark.append(e.target.result);
currentChunk++;
if (currentChunk < chunks)//判断是否读取完成
loadNext();
else
log.innerHTML = spark.end().toUpperCase(); };
function loadNext() {
var fileReader = new FileReader();
fileReader.onload = frOnload;
var start = currentChunk * chunkSize,
end = ((start + chunkSize) >= file.size) ? file.size : start + chunkSize;
fileReader.readAsArrayBuffer(blobSlice.call(file, start, end));
};
loadNext();//调用
});
</script>
本文版权归作者(谢俊)和博客园所有,欢迎转载,转载请标明出处。
原文地址:http://www.cnblogs.com/net-xiejun/
微信开发群
完整源码下载:https://github.com/xiejun-net/weixin
公众账号:

asp.net和js读取文件的MD5值的方法的更多相关文章
- c# 计算字符串和文件的MD5值的方法
快速使用Romanysoft LAB的技术实现 HTML 开发Mac OS App,并销售到苹果应用商店中. <HTML开发Mac OS App 视频教程> 土豆网同步更新:http: ...
- swift 获取文件的Md5值
获取文件的Md5值的方法如下 func md5File(url: URL) -> String? { let bufferSize = 1024 * 1024 do { //打开文件 let f ...
- HTML5 file api读取文件的MD5码工具
1.工具的用途:用HTML5 file api读取文件的MD5码.MD5码在文件的唯一性识别上有很重要的应用,业内常用MD5进行文件识别.文件秒传.文件安全性检查等: 2.适用性:IE.Chrome皆 ...
- 前端使用js读取文件
最近同时问我js能不能读取本地文件: 想起以前看到js读取本地文件的文章,然后自己写了个demo. ps:这有点想Java的IO流,但是又有差别. 首先我们定义一个input标签type=" ...
- jq常用事件(on,blur,focus,change),js/jq等待图片(页面)加载完毕事件,js读取文件
jq常用事件(on,blur,focus,change) // 方法一(推荐) $('.box').on( "click",function() {} ) $('.box').on ...
- Node.js读取文件内容
原文链接:http://blog.csdn.net/zk437092645/article/details/9231787 Node.js读取文件内容包括同步和异步两种方式. 1.同步读取,调用的是r ...
- 在浏览器端获取文件的MD5值
前几天接到一个奇怪的需求,要在web页面中计算文件的md5值,还好这个项目是只需兼容现代浏览器的,不然要坑死了. 其实对文件进行md5,对于后端来说是及其简单的.比如使用Node.js,只要下面几行代 ...
- 通过python的hashlib模块计算一个文件的MD5值
Python的hashlib提供了很多摘要算法,如MD5,SHA1等常用算法. 什么是摘要算法呢?摘要算法又称哈希算法.散列算法.它通过一个函数,把任意长度的数据转换为一个长度固定的数据串(如MD5值 ...
- linux shell 命令获取字符串/文件的MD5值
获取字符串的MD5值: 字符串“hello”的MD5: $ echo -n 'hello'|md5sum|cut -d ' ' -f1 得到的MD5值: 5d41402abc4b2a76b9719d9 ...
随机推荐
- Netsuite订单审核问题
销售订单审核自动发送邮件问题: 销售订单界面有“提交审核”按钮,点击提交后会自动发送邮件给审核人,这个审核人可以实现指定发送给销售团队中的“主要”成员吗? Options - 在邮件系统中, 定义那个 ...
- HQL查询——聚集函数
HQL查询--聚集函数 HQL也支持在选出的属性上使用聚集函数.HQL支持的聚集函数与SQL的完全相同: (1)avg:计算属性平均值: (2)count:统计选择对象的数量: (3)max:统计属性 ...
- Learn GIT
1.创建版本库: git init 设置用户: git config --global user.email "you@example.com" 2.添加到仓库(将修改的内容提交到 ...
- gravity与layout_gravity的区别
android:gravivty 控件的内容显示位置 android:layout_gravity 控件在屏幕的布局位置,相对于容器或者父控件的位置
- 从C++到GO
从C++到GO 刚开始接触Go语言,看了两本Go语言的书,从c++开发者的角度来看看go语言的新特性,说下自己感触较深的几点: 并发编程 Go语言层面支持协程,将并发业务逻辑从异步转为同步,大幅提高开 ...
- (转载)MongoDB C#驱动中Query几个方法
MongoDB C#驱动中Query几个方法 Query.All("name", "a", "b");//通过多个元素来匹配数组 Query ...
- fonts.googleapis.com 加载慢的解决方法
把:fonts.googleapis.com 替换成 fonts.useso.com
- java简单计算器
写的一个小计算器,留着以后看吧. import java.awt.BorderLayout; import java.awt.Button; import java.awt.Color; import ...
- jieba分词
一.安装 pip 安装 或者 先下载http://pypi.python.org/pypi/jieba/ ,解压后运行python setup.py install 二.功能 1.分词 2.添加自定义 ...
- HashMap对象的深层克隆
1.java.util.HashMap 的 clone 方法是浅层copy,clone出来的对象,仅仅是原来对象的一个引用,并且对克隆出来的对象进行操作是无效的. 下面是个例子: import jav ...