• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

看过bestcomy关于ASP.NET中大文件上传的新想法

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

  前两天看过bestcomy 的关于大文件上传的系列文章真是受益匪浅,对ASP.NET中上传文件的方法又有全新的认识,这比原来简单的运用SaveAs()的方法不知要高明多少。认识提高了,新的想法就来了。不知道AspnetUpload组建能不能支持断点续传。不过将服务器上的文件上传到数据库的过程我想是可以实现断点续传的。将大文件上传到数据库的基本思路是:分次读取文件到缓冲区,利用使用 SQL Server 的 UPDATETEXT 函数将文件以指定大小的块区写入。关于实现断点续传,我的想法是在数据库中增加一个字段,用于表示已经上传的字节数。如果再次上传时可以将上次上传的结尾为起头继续上传文件。

再次上次时的处理过程:
1、读取image 列的文本指针值,SELECT @Pointer=TEXTPTR(Picture) FROM Categories WHERE CategoryID=@idx
2、分次写入的函数,UPDATETEXT Categories.Picture @Pointer @Offset @Delete WITH LOG @Bytes
  @Pointer 步骤1中取得的值
  @Offset 偏移量,分块的大小
  @Delete 为 0 表示不删除数据
  @Bytes 本次插入的数据
3、在读取文件数据时,与原来代码有所不同。想要知道上次已经上传的字节数(增一个字段保存)。先用br.ReadBytes(已经上传的字节数)使流的当前位置提升到本次要上传文件的起点。在用br.ReadBytes(BUFFER_LENGTH);分块读取要插入的数据。

  由于不知道AspnetUpload组件中的代码,不清楚bestcomy是如何实现客户端上载大文件到服务器上的方法,是不是还是分块上传的方法。如果是用分块上传的方法那么是否可以通过依次次追加的方式实现断点续传。


相关文档:
bestcomyBlog中的文章
https://files.cnblogs.com/bestcomy/FileToMSSQL.rar中有将文件上传到数据库的代码)
《将 BLOB 值写入 SQL Server 时保留资源》讲述了在.net下如何将大数据写入SQL Server的方法。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Asp.net简单代码设置GridView自适应列宽不变形发布时间:2022-07-10
下一篇:
Asp.net页面传参数给Silverlight发布时间:2022-07-10
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap