$port = 3456 $root = $PSScriptRoot $listener = [System.Net.HttpListener]::new() $listener.Prefixes.Add("http://localhost:$port/") $listener.Start() Write-Host "Serving on http://localhost:$port/" while ($listener.IsListening) { $ctx = $listener.GetContext() $path = $ctx.Request.Url.LocalPath.TrimStart('/') if ($path -eq '') { $path = 'JGA_Info.html' } $file = Join-Path $root $path if (Test-Path $file) { $ext = [System.IO.Path]::GetExtension($file).ToLower() $mime = switch ($ext) { '.html' { 'text/html; charset=utf-8' } '.jpg' { 'image/jpeg' } '.jpeg' { 'image/jpeg' } '.png' { 'image/png' } default { 'application/octet-stream' } } $bytes = [System.IO.File]::ReadAllBytes($file) $ctx.Response.ContentType = $mime $ctx.Response.SendChunked = $true $ctx.Response.OutputStream.Write($bytes, 0, $bytes.Length) $ctx.Response.OutputStream.Flush() } else { $ctx.Response.StatusCode = 404 } $ctx.Response.Close() }