示例#1
0
 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);
                     }
                 }
             }
         }
 }
示例#2
0
 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);
                     }
                 }
             }
         }
 }