Esempio n. 1
0
        public override async Task ExecuteAsync(HttpContext context)
        {
            var fullpath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, FilePath.TrimStart('/', '\\'));

            if (File.Exists(fullpath))
            {
                var response = context.Response;
                var filename = Path.GetFileName(fullpath);
                var ext      = Path.GetExtension(fullpath);

                response.StatusCode  = 200;
                response.ContentType = Mime.Get(ext.ToLower()) ?? "application/octet-stream";
                response.AddHeader("Content-Disposition", string.Format("attachment; filename={0}", filename));

                var buffer    = new byte[4096];
                int readBytes = 0;
                using (var fs = new FileStream(fullpath, FileMode.Open, FileAccess.Read, FileShare.Read))
                {
                    response.AddHeader("Content-Length", fs.Length.ToString());
                    while ((readBytes = await fs.ReadAsync(buffer, 0, 4096)) > 0)
                    {
                        await response.WriteAsync(buffer);
                    }
                }
            }
            else
            {
                await(new Http404NotFoundResult()).ExecuteAsync(context);
            }
        }
Esempio n. 2
0
        public void MimeTypeTest2()
        {
            IMime mime = new Mime();

            var mimeType = mime.Get("3dml");

            Assert.AreEqual(mimeType, "text/vnd.in3d.3dml");
        }
        internal static void Main(string[] args)
        {
            //Using static method get mime Type From the Resources
            var name = Mime.GetMimeType("ami");

            Console.WriteLine("ami = " + name);

            IMime mimeType  = new Mime();
            var   mimeType1 = mimeType.Get("3dml");

            Console.WriteLine("3dml = " + mimeType1);

            var mimeType2 = mimeType["z3"];

            Console.WriteLine("z3 = " + mimeType2);
        }
        public override async Task ExecuteAsync(HttpContext context)
        {
            var fullpath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, FilePath.TrimStart('/', '\\'));
            var response = context.Response;
            var request  = context.Request;

            if (File.Exists(fullpath))
            {
                if (request.Header["If-Modified-Since"] != null)
                {
                    DateTime time;
                    if (DateTime.TryParse(request.Header["If-Modified-Since"], out time))
                    {
                        if (time.Ticks >= File.GetLastWriteTimeUtc(fullpath).Ticks)
                        {
                            response.StatusCode = 304;
                            await response.WriteAsync(string.Empty);

                            return;
                        }
                    }
                }

                var ext = Path.GetExtension(fullpath);
                response.StatusCode  = 200;
                response.ContentType = Mime.Get(ext) ?? "application/octet-stream";
                response.AddHeader("Last-Modified", File.GetLastWriteTime(fullpath).ToUniversalTime().ToString("r"));

                var buffer    = new byte[4096];
                int readBytes = 0;
                using (var fs = new FileStream(fullpath, FileMode.Open, FileAccess.Read, FileShare.Read))
                {
                    response.AddHeader("Content-Length", fs.Length.ToString());
                    while ((readBytes = await fs.ReadAsync(buffer, 0, 4096)) > 0)
                    {
                        await response.WriteAsync(buffer);
                    }
                }
            }
            else
            {
                await(new Http404NotFoundResult()).ExecuteAsync(context);
            }
        }
Esempio n. 5
0
 public void Text()
 {
     Mime.Get("../../App_Data/Text.txt").ShouldNotBe(ApplicationOctetStream);
     Mime.Get("../../App_Data/Text.txt").ShouldBe("application/text");
 }
Esempio n. 6
0
 public void Pdf()
 {
     Mime.Get("../../App_Data/example_pdf.pdf").ShouldNotBe(ApplicationOctetStream);
     Mime.Get("../../App_Data/example_pdf.pdf").ShouldBe("application/text");
 }
Esempio n. 7
0
 public void Excel_RealWorld()
 {
     Mime.Get("../../App_Data/example_excel.xlsx").ShouldNotBe(ApplicationOctetStream);
     Mime.Get("../../App_Data/example_excel.xlsx").ShouldBe("application/text");
 }
Esempio n. 8
0
 public void Excel_New()
 {
     Mime.Get("../../App_Data/test_excel.xlsx").ShouldNotBe(ApplicationOctetStream);
     Mime.Get("../../App_Data/test_excel.xlsx").ShouldBe("application/text");
 }