【发布时间】:2015-12-11 21:33:08
【问题描述】:
我正在使用 html5 上传文件并在客户端计算 md5 (JavaScript) 然后在服务器端(处理程序)我将文件切片插入到这样的表中:
public void WriteBlobsToDB(byte[] buffer,int id)
{
File_Data fl = new File_Data();
fl.FileId = id;
fl.FileChunks = buffer;
try
{
WiFileData.InsertOnSubmit(fl);
dc.SubmitChanges();
}
catch (ExecutionEngineException e){throw e;}
}
然后当所有文件切片都保存在数据库中时,我尝试读取它们并将它们保存在 byte[] allData 中并将其插入另一个表中:
public void WriteBlobs(int id, string fileName,int count,byte[] allData)
{
List<chunkInfo> listOfChunks;
File_Data fd = new File_Data();
File_List fl = new File_List();
try
{ var chunks = (from c in FileData
where c.FileId == id
orderby c.Id ascending
select new chunkInfo
{ Id = c.Id,
ChunkData = c.FileChunks.ToArray()
});
listOfChunks = chunks.ToList();
foreach (chunkInfo sChunk in listOfChunks)
{ fl.FileId = id;
fl.FileName = fileName;
int dstoffset = count * sChunk.ChunkData.Length;// count is set to 0 at teh beggginning
Buffer.BlockCopy(sChunk.ChunkData, 0, allData, dstoffset, sChunk.ChunkData.Length);
count++;
}
int l = allData.Length;
fl.FileData = new Binary(allData);
FileList.InsertOnSubmit(fl);
dc.SubmitChanges();
}
catch (Exception){throw;}
}
代码正在运行,我将数据保存在数据库中,最终 allDatasize 与我的文件大小相同。我只需要验证表中Filedata字段中保存的数据是否写入。如何计算 md5 并进行比较?
谢谢
【问题讨论】:
标签: c# sql-server file-upload linq-to-sql md5