当前位置: 首页 > 编程语言 > C#

将blob转换回原始文件类型并使其可供下载分享

时间:2023-04-10 15:53:13 C#

C#学习教程:将blob转换回其原始文件类型并使其可供下载我的应用程序调用一个Web服务(内置于c#),该服务从MySql数据库中提取blob数据并将其传递给客户端应用程序。这个blob数据实际上是一个存储在MySQL数据库中的小文件(小于100kb)。我希望我的客户端应用程序能够将此blob转换回其原始文件类型,然后请求用户允许下载。现在我想知道这是不是个好主意?或者我应该只在我的Web服务中进行文件转换并将文件本身发送到JSP应用程序吗?任何帮助/建议将不胜感激!如果您有任何可能对我的转换有帮助的好的教程/代码,请将其张贴在这里作为答案?提前致谢!用这个例子把SQL数据库改成你的数据库上面的Select语句就是C#学习教程的全部内容:将blob转回原始文件类型并提供下载如果对大家有用需要了解就分享一下more关于C#学习教程,希望大家多多关注—SqlConnectionpubsConn=newSqlConnection("DataSource=localhost;IntegratedSecurity=SSPI;InitialCatalog=pubs;");SqlCommandlogoCMD=newSqlCommand("SELECTpub_id,logoFROMpub_info",pubsConn);文件流fs;//将BLOB写入文件(*.bmp)。BinaryWriterbw;//将BLOB流式传输到FileStream对象。intbufferSize=100;//BLOB缓冲区的大小。byte[]outbyte=newbyte[bufferSize];//将由GetBytes填充的BLOBbyte[]缓冲区。长期重试;//从GetBytes返回的字节。长启动索引=0;//BLOB输出中的起始位置。字符串pub_id="";//要在文件名中使用的发布者ID。//打开连接并将数据读入DataReader。酒吧康涅狄格州打开();sqldataReadermyReader=logoCMD.ExecuteReader(CommandBehavior.SequentialAccess);while(myReader.Read()){//获取发布者id,这必须在获取徽标之前发生。pub_id=myReader.GetString(0);//创建一个文件来保存输出。fs=newFileStream("logo"+pub_id+".bmp",FileMode.OpenOrCreate,FileAccess.Write);bw=newBinaryWriter(fs);//重置新BLOB的起始字节。开始索引=0;//将字节读入outbyte[]并保留返回的字节数。retval=myReader.GetBytes(1,startIndex,outbyte,0,bufferSize);//当有超出缓冲区大小的字节时继续读写。while(retval==bufferSize){bw.Write(outbyte);bw.冲洗();//将起始索引重新定位到最后一个缓冲区的末尾并填充缓冲区。startIndex+=缓冲区大小;retval=myReader.GetBytes(1,startIndex,outbyte,0,bufferSize);}//写入剩余的缓冲区。bw.Write(outbyte,0,(int)retval-1);bw.冲洗();//关闭输出文件.bw.Close();fs.Close();}//关闭阅读器和连接.myReader.Close();pubsConn.Close();如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: