我想使用Content-MD5标头为Azure提供正在上载的文件的客户端生成的MD5哈希值。我如何在FineUploader中完成此任务?
目标受众:Firefox,Chrome,Safari,Opera和IE10 +。
通过this answer来判断我认为它应该是可能的,但至少有一半的客户会在非常旧(慢)的计算机上运行。这样做客户端MD5哈希方法是否可行?
有些相关的问题:我还认为设置最大文件大小以减少MD5哈希算法的压力可能是明智之举。也许只是在Azure" chunking"限制?从另一个角度来看:我可以禁用分块吗?
答案 0 :(得分:3)
Fine Uploader可通过the getFile(id)
API method直接访问基础int Hi = ArrMarks[0];
for(int i = 0; i < 5; i++) {
if(ArrMarks[i] > Hi) {
Hi = ArrMarks[i];
}
}
txaDisplay.append("Names:"+"\t\t"+"Marks");
for (int i = 0; i < 5; i++) {
txaDisplay.append(ArrNames[i]+"\t\t"+ArrMarks[i]+"\n");
}
或File
对象。一旦有权访问它,就可以使用Blob
来读取文件/ blob字节并生成哈希。要使散列更容易,请考虑使用像SparkMD5这样的JS库。
计算此哈希值的最佳位置可能是onSubmit
callback handler。由于读取文件的过程是异步的,因此您必须在处理程序中返回一个承诺,Fine Uploader支持该承诺。计算完哈希后,解析promise并使用Fine Uploader's setParams API method将哈希设置为文件的参数。
我可以禁用分块吗?
是的,您可以,但是如果文件上传失败,您将失去与分块相关的所有好处,以及恢复功能和有效重试。