public virtual void LoadFile(Stream stream) { using (SqlStatement getBlob = BlobFactory.CreateBlobSelectStatement()) if (getBlob.Read()) { if (!(DBNull.Value.Equals(getBlob[0]))) { if (typeof(string).Equals(getBlob.Reader.GetFieldType(0))) { byte[] stringData = Encoding.Default.GetBytes(((string)(getBlob[0]))); stream.Write(stringData, 0, stringData.Length); } else { byte[] buffer = new byte[(1024 * 64)]; long offset = 0; long bytesRead = getBlob.Reader.GetBytes(0, offset, buffer, 0, buffer.Length); while (bytesRead > 0) { stream.Write(buffer, 0, Convert.ToInt32(bytesRead)); offset = (offset + bytesRead); bytesRead = getBlob.Reader.GetBytes(0, offset, buffer, 0, buffer.Length); } } } } }
public virtual void LoadFile(Stream stream) { if ((BlobHandlerInfo.Current != null) && BlobHandlerInfo.Current.ProcessDownloadViaBusinessRule(stream)) { return; } using (SqlStatement getBlob = BlobFactory.CreateBlobSelectStatement()) if (getBlob.Read()) { if (!(DBNull.Value.Equals(getBlob[0]))) { if (typeof(string).Equals(getBlob.Reader.GetFieldType(0))) { byte[] stringData = Encoding.Default.GetBytes(((string)(getBlob[0]))); stream.Write(stringData, 0, stringData.Length); } else { byte[] buffer = new byte[(1024 * 64)]; long offset = 0; long bytesRead = getBlob.Reader.GetBytes(0, offset, buffer, 0, buffer.Length); while (bytesRead > 0) { stream.Write(buffer, 0, Convert.ToInt32(bytesRead)); offset = (offset + bytesRead); if (bytesRead < buffer.Length) { break; } bytesRead = getBlob.Reader.GetBytes(0, offset, buffer, 0, buffer.Length); } } } } }