public void Handle(HttpDiscussion discussion) { var url_part = discussion.Request.Url; // do some basic sanitization of the URL, attempting to make sure they can't read files outside the basepath // NOTE: this is probably not bulletproof/secure url_part = url_part.Replace("\\..\\", "\\"); url_part = url_part.Replace("/../", "/"); url_part = url_part.Replace("//", "/"); url_part = url_part.Replace(@"\\", @"\"); url_part = url_part.Replace(":", ""); url_part = url_part.Replace("/", Path.DirectorySeparatorChar.ToString()); foreach (var file in FilesPath) { if (file.Path == url_part) { var file_extension = GetExtension(url_part); discussion.Response = new HttpResponse(); discussion.Response.StatusCode = "200"; discussion.Response.ReasonPhrase = "Ok"; discussion.Response.Headers["Content-Type"] = QuickMimeTypeMapper.GetMimeType(file_extension); discussion.Response.Content = file.Content; return; } } discussion.Response = HttpBuilder.NotFound(); }
HttpResponse Handle_LocalFile(HttpRequest request, string local_path) { var file_extension = Path.GetExtension(local_path); var response = new HttpResponse(); response.HttpStatusCode = HttpStatusCode.Ok; response.Headers["Content-Type"] = QuickMimeTypeMapper.GetMimeType(file_extension); response.ContentStream = File.Open(local_path, FileMode.Open, FileAccess.Read, FileShare.ReadWrite); return(response); }
HttpResponse Handle_LocalFile(HttpRequest request, string local_path) { var file_extension = Path.GetExtension(local_path); var response = new HttpResponse(); response.StatusCode = "200"; response.ReasonPhrase = "Ok"; response.Headers["Content-Type"] = QuickMimeTypeMapper.GetMimeType(file_extension); response.Content = File.ReadAllBytes(local_path); return response; }
HttpResponse Handle_ResourceFile(HttpRequest request, string resource_name) { var file_extension = Path.GetExtension(resource_name); var response = new HttpResponse(); response.StatusCode = "200"; response.ReasonPhrase = "Ok"; response.Headers["Content-Type"] = QuickMimeTypeMapper.GetMimeType(file_extension); response.Content = Resource.readAll(resource_name); return response; }
private HttpResponse HandleFile(string localPath) { var fileExtension = Path.GetExtension(localPath); var response = new HttpResponse(); response.Header.ContentType = QuickMimeTypeMapper.GetMimeType(fileExtension); response.StatusCode = ResponseStatusCode.Ok; response.Content = File.ReadAllBytes(localPath); response.Header.ContentLength = response.Content.Length.ToString(); return(response); }
HttpResponse Handle_LocalFile(HttpRequest request, string local_path) { var file_extension = Path.GetExtension(local_path); var response = new HttpResponse(); response.StatusCode = "200"; response.ReasonPhrase = "Ok"; String mimeType = QuickMimeTypeMapper.GetMimeType(file_extension); if (mimeType.StartsWith("audio/")) { response.Headers["Accept-Ranges"] = "bytes"; } response.Headers["Content-Type"] = mimeType; response.Content = File.ReadAllBytes(local_path); return(response); }