Exemplo n.º 1
0
        public static void SendFile(StreamHandler streamHandler, int streamId, string url, string encoding)
        {
            FileInfo fi = new FileInfo(url);

            if (!fi.Exists)
            {
                SendNotFound(streamHandler, streamId);
                return;
            }
            List <HeaderField> headers = new List <HeaderField>()
            {
                HEADER_OK,
                new HeaderField {
                    Name = "content-type", Value = Mapping.MimeMap[fi.Extension], Sensitive = false
                },
            };

            if (Server.UseGZip && encoding != null && encoding.Contains("gzip"))
            {
                fi = ZipStream.Compress(fi);
                if (fi.Extension.Equals(".gz"))
                {
                    headers.Add(new HeaderField {
                        Name = "content-encoding", Value = "gzip", Sensitive = false
                    });
                }
            }
            SendHeader(streamHandler, streamId, headers, true, false);

            // send file
            SendFileAsDataFrames(streamHandler, fi, streamId);
        }