首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SQL中Convert与C#中Convert的区别

SQL中Convert与C#中Convert的区别
EN

Stack Overflow用户
提问于 2014-09-19 17:55:19
回答 1查看 85关注 0票数 0

我有一个连接到SQL Server数据库的C#项目,并且我正在为文件上传执行格式识别。更具体地说,我上传varbinary中的文件,并将它们存储在Db的一个列中。当我下载它们时,我想识别它们的格式。我在网上找到了一些热门关键字(或元数据),通过它们我可以识别它们是docx、xlsx还是其他。我的问题是,如果我在SQL上这样做:

代码语言:javascript
复制
select * from table where convert(varchar(8000),objectFile) like '%docprop%'`

它可以工作,并且数据库只返回word文件。但是,如果我想在使用varbinary之后在C#上这样做,我该怎么做呢?我试过了,但不起作用:

代码语言:javascript
复制
var item = context.tObject_M.SingleOrDefault(x => x.objectId == objectId);
var files = item.objectFile;
string filess = Convert.ToString(files);
byte[] itemi = item.objectFile;
string ciao = System.Text.Encoding.UTF8.GetString(itemi);
if (ciao.Contains("DOCPROPS"))
   {
      filess = "ciao";
    }
EN

回答 1

Stack Overflow用户

发布于 2014-09-19 18:41:34

http://www.garykessler.net/library/file_sigs.html

检查这个链接,你应该调查一下魔术数字。这是了解文件类型的唯一可靠方法。在你的例子中,你可以使用内容类型,就像我在评论中告诉你的那样!

如果搜索以03 00开头序列

代码语言:javascript
复制
byte[] fileSign={0x03, 0x04, 0x00};

for(int i=0; i<fileSign.Length; i++)
{
   if(fileByteArray[i] != fileSign[i])
   {
       //not the same files
   }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25931189

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档