MVC中上传文件以二进制存到数据库中

t101lian 2016-01-11 02:16:38




FileStream fs = new FileStream(fileName, FileMode.Open);
BinaryReader br = new BinaryReader(fs);
byte[] byData = br.ReadBytes((int)fs.Length);
fs.Close();
//model.worddata = byData;
#if debug
string cc = "";
for (int i = 0; i < byData.Length; i++)
{
cc += byData[i];
}
ViewBag.Name = cc;
#endif


为什么在我调试的时候 ViewBag.Name为
68101112101110100101110991218210111511110811810111446671171141141011101164671101116831011141181059910113101901782041721811963268101112101110100101110991218210111511110811

我要把二进制数据存到model.worddata中,不过model.worddata是string类型的,该怎么处理?

另外需要验证上传的 word文档中是否存在 指定的一个字符串 ,比如 “新年快乐”,该怎么处理?


各位大神们,可否给出代码,感谢!!!答案详细再加分!
...全文
321 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
Justin-Liu 2016-01-12
  • 打赏
  • 举报
回复
换个编码格式
Justin-Liu 2016-01-11
  • 打赏
  • 举报
回复
用编码格式转换成String就行了,到时候再用同样的编码格式转回来
秋的红果实 2016-01-11
  • 打赏
  • 举报
回复
action里面:

string FilePath = Server.MapPath("../App_Data/WordDocument.txt");
FileStream FS = new FileStream(FilePath,FileMode.Open, FileAccess.Read);
byte[] b = new byte[FS.Length];
FS.Read(b, 0, b.Length);
string str = System.Text.Encoding.Default.GetString(b);
ViewBag.DocContent = str;

if (str.Contains("新年快乐"))
{
    ViewBag.isExist = "是";
}
else
{
    ViewBag.isExist = "否";
}

return View();

视图里面,写2个bag就行了,txt文件放到App_Data下
xdashewan 2016-01-11
  • 打赏
  • 举报
回复
byte[]转string用System.Text.Encoding.Default.GetString ( byteArray );,其中Encoding可以换成你指定的编码。 字符串匹配的话你直接用contains不行?
t101lian 2016-01-11
  • 打赏
  • 举报
回复
引用 1 楼 xdashewan 的回复:
byte[]转string用System.Text.Encoding.Default.GetString ( byteArray );,其中Encoding可以换成你指定的编码。 字符串匹配的话你直接用contains不行?
引用 6 楼 starfd 的回复:
文件什么的你就存varbinary直接传byte[]不就行了,干嘛定义string?
引用 3 楼 FoxDave 的回复:
用编码格式转换成String就行了,到时候再用同样的编码格式转回来
     
              
    FileStream fs = new FileStream(fileName, FileMode.Open, FileAccess.Read);
                    BinaryReader br = new BinaryReader(fs);
                    byte[] bytes = br.ReadBytes((int)fs.Length);
                    br.Close();
                    fs.Close();

                    //验证
                    var bytesString = System.Text.Encoding.Default.GetString(bytes);
                    if (!bytesString.Contains("新年快乐")||!bytesString.Contains("aaaaaaaa"))
                    { 
bytesString 出现乱码了,怎么破?在线等。
Hello World, 2016-01-11
  • 打赏
  • 举报
回复
引用 7 楼 t101lian 的回复:
[quote=引用 6 楼 starfd 的回复:] 文件什么的你就存varbinary直接传byte[]不就行了,干嘛定义string?
请问下那我在model中该定义什么类型?[/quote] byte[] public byte[] FileContent{get;set;}
t101lian 2016-01-11
  • 打赏
  • 举报
回复
引用 6 楼 starfd 的回复:
文件什么的你就存varbinary直接传byte[]不就行了,干嘛定义string?


请问下那我在model中该定义什么类型?
  • 打赏
  • 举报
回复
System.Text.Encoding.Default.GetString ( byteArray );
  • 打赏
  • 举报
回复
文件什么的你就存varbinary直接传byte[]不就行了,干嘛定义string?
t101lian 2016-01-11
  • 打赏
  • 举报
回复
引用 3 楼 FoxDave 的回复:
用编码格式转换成String就行了,到时候再用同样的编码格式转回来
worddata在数据库中的字段是varbinary类型的, 在C#中该对应什么类型? ,我现在定义的是 string类型,我怎么把byte[] b 存进去呢

62,272

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧