问题陈述:
我有一个支持文件上传的aspx网页(即附件)。 附件的大小可达500 MB。 我能够获得HttpPostedFile但是当读取流到Byte []并将其保存到数据库时,对于更大尺寸的文件会失败。 在NHibernateSession.Flush()中,抛出Out of Memory异常。
注意:我可以上传最多45MB的数据。
如何解决此问题?
答案 0 :(得分:3)
您不应该使用byte[]
,因为这意味着您必须将整个文件加载到内存中。这是一个nice article,它说明了如何使用BLOBS和Streams
来缓解这些问题。可以找到文章类型中说明的自定义Blob数据的实现here。
答案 1 :(得分:2)
如果您的数据库是MS SQL,那么您应该使用SqlFileStream。这是一个很好的example如何做到这一点。