Download BlueTube.Web/Controllers/HomeController.cs from niobures/VideoSearch: direct link, hf CLI and curl.
- Browser
- Download file 2.91 kB
-
https://huggingface.co/niobures/VideoSearch/resolve/main/BlueTube.Web/Controllers/HomeController.cs
- Command line
-
hf download hf://niobures/VideoSearch/BlueTube.Web/Controllers/HomeController.cs
-
curl -L -o HomeController.cs https://huggingface.co/niobures/VideoSearch/resolve/main/BlueTube.Web/Controllers/HomeController.cs
2.91 kB
| using System; | |
| using System.Collections.Generic; | |
| using System.Linq; | |
| using System.Web; | |
| using System.Web.Mvc; | |
| using System.Configuration; | |
| using System.Net.Mime; | |
| using System.IO; | |
| namespace BlueTube.Web.Controllers | |
| { | |
| public class HomeController : Controller | |
| { | |
| // | |
| // GET: /Home/ | |
| public ActionResult Index() | |
| { | |
| return View(); | |
| } | |
| [] | |
| public FileResult Download() | |
| { | |
| DataService.LogDownload(Request.UserHostAddress); | |
| Response.AddHeader("Content-Length", | |
| new FileInfo(Path.Combine(Server.MapPath("~/App_Data"), "BlueTube.Installer.exe")).Length.ToString(System.Globalization.CultureInfo.InvariantCulture)); | |
| Response.BufferOutput = false; | |
| Response.Buffer = false; | |
| return File(ConfigurationManager.AppSettings["BlueTubeAppSetup"], MediaTypeNames.Application.Octet, "Bluetube.Installer.exe"); | |
| //using (var fStream = new FileStream(Path.Combine(Server.MapPath("~/App_Data"), "BlueTube.Installer.exe"), FileMode.Open)) | |
| //{ | |
| // WriteDataToOutputStream(fStream, fStream.Length, "BlueTube.Installer.exe", HttpContext); | |
| //} | |
| } | |
| private void PrepareResponseStream(string clientFileName, HttpContextBase context, long sourceStreamLength) | |
| { | |
| context.Response.ClearHeaders(); | |
| context.Response.Clear(); | |
| context.Response.ContentType = "APPLICATION/OCTET-STREAM"; | |
| context.Response.AddHeader("Content-Disposition", string.Format("filename=\"{0}\"", clientFileName)); | |
| //set cachebility to private to allow IE to download it via HTTPS. Otherwise it might refuse it | |
| //see reason for HttpCacheability.Private at http://support.microsoft.com/kb/812935 | |
| context.Response.Cache.SetCacheability(HttpCacheability.Private); | |
| context.Response.Buffer = false; | |
| context.Response.BufferOutput = false; | |
| context.Response.AddHeader("Content-Length", sourceStreamLength.ToString(System.Globalization.CultureInfo.InvariantCulture)); | |
| } | |
| private void WriteDataToOutputStream(Stream sourceStream, long sourceStreamLength, string clientFileName, HttpContextBase context) | |
| { | |
| PrepareResponseStream(clientFileName, context, sourceStreamLength); | |
| const int BlockSize = 4 * 1024 * 1024; | |
| byte[] buffer = new byte[BlockSize]; | |
| int bytesRead; | |
| using (Stream outStream = context.Response.OutputStream) | |
| { | |
| while ((bytesRead = sourceStream.Read(buffer, 0, BlockSize)) > 0) | |
| { | |
| outStream.Write(buffer, 0, bytesRead); | |
| } | |
| outStream.Flush(); | |
| } | |
| } | |
| } | |
| } | |