From a6c2e1107a120fdd47791a1fcf0f5f95433090f6 Mon Sep 17 00:00:00 2001 From: josesimoes Date: Mon, 2 Nov 2020 17:24:59 +0000 Subject: [PATCH 1/2] Add method to return MIME-type given a file name --- WebServer/WebServer.cs | 35 +++-------------------------------- 1 file changed, 3 insertions(+), 32 deletions(-) diff --git a/WebServer/WebServer.cs b/WebServer/WebServer.cs index f323899..375e371 100644 --- a/WebServer/WebServer.cs +++ b/WebServer/WebServer.cs @@ -418,38 +418,8 @@ public static void OutputHttpCode(HttpListenerResponse response, HttpStatusCode /// public static void SendFileOverHTTP(HttpListenerResponse response, StorageFile strFilePath) { - string ContentType = "text/html"; - //determine the type of file for the http header - if (strFilePath.FileType.ToLower() == ".cs" || - strFilePath.FileType.ToLower() == ".txt" || - strFilePath.FileType.ToLower() == ".csproj" - ) - { - ContentType = "text/plain"; - } - else if (strFilePath.FileType.ToLower() == ".jpg" || - strFilePath.FileType.ToLower() == ".bmp" || - strFilePath.FileType.ToLower() == ".jpeg" || - strFilePath.FileType.ToLower() == ".png" - ) - { - ContentType = "image"; - } - else if (strFilePath.FileType.ToLower() == ".htm" || - strFilePath.FileType.ToLower() == ".html" - ) - { - ContentType = "text/html"; - } - else if (strFilePath.FileType.ToLower() == ".mp3") - { - ContentType = "audio/mpeg"; - } - else if (strFilePath.FileType.ToLower() == ".css") - { - ContentType = "text/css"; - } - + string ContentType = GetContentTypeFromFileName(strFilePath.FileType); + try { IBuffer readBuffer = FileIO.ReadBuffer(strFilePath); @@ -651,6 +621,7 @@ private void ListInterfaces() } } + /// Get the MIME-type for a file name. /// /// Dispose of any resources. /// From 27eef7ad29ba23e80280ab08e213a65df44fc82d Mon Sep 17 00:00:00 2001 From: josesimoes Date: Mon, 2 Nov 2020 17:37:25 +0000 Subject: [PATCH 2/2] Add favicon to webserver sample - Add icon as resource (mind that editing a resource file is NOT working in VS2019). - Add processing for sending favicon (requires previous merge of #6). --- WebServer.Sample/Program.cs | 6 +- WebServer.Sample/Resources.Designer.cs | 38 +++++++ WebServer.Sample/Resources.resx | 124 +++++++++++++++++++++++ WebServer.Sample/Resources/favicon.ico | Bin 0 -> 1150 bytes WebServer.Sample/WebServer.Sample.nfproj | 19 ++++ WebServer.Sample/packages.config | 1 + 6 files changed, 187 insertions(+), 1 deletion(-) create mode 100644 WebServer.Sample/Resources.Designer.cs create mode 100644 WebServer.Sample/Resources.resx create mode 100644 WebServer.Sample/Resources/favicon.ico diff --git a/WebServer.Sample/Program.cs b/WebServer.Sample/Program.cs index bbe3b0d..fadbe0b 100644 --- a/WebServer.Sample/Program.cs +++ b/WebServer.Sample/Program.cs @@ -16,6 +16,7 @@ using System.Text; using System.Net; using System.Security.Cryptography.X509Certificates; +using WebServer.Sample; #if HAS_WIFI using Windows.Devices.WiFi; @@ -331,7 +332,10 @@ private static void ServerCommandReceived(object source, WebServerEventArgs e) ApiDefault(e); } } - + else if (url.ToLower().IndexOf("/favicon.ico") == 0) + { + WebServer.SendFileOverHTTP(e.Context.Response, "favicon.ico", Resources.GetBytes(Resources.BinaryResources.favicon)); + } #if HAS_STORAGE else { diff --git a/WebServer.Sample/Resources.Designer.cs b/WebServer.Sample/Resources.Designer.cs new file mode 100644 index 0000000..63a7fbd --- /dev/null +++ b/WebServer.Sample/Resources.Designer.cs @@ -0,0 +1,38 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.42000 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace WebServer.Sample +{ + + internal partial class Resources + { + private static System.Resources.ResourceManager manager; + internal static System.Resources.ResourceManager ResourceManager + { + get + { + if ((Resources.manager == null)) + { + Resources.manager = new System.Resources.ResourceManager("WebServer.Sample.Resources", typeof(Resources).Assembly); + } + return Resources.manager; + } + } + internal static byte[] GetBytes(Resources.BinaryResources id) + { + return ((byte[])(nanoFramework.Runtime.Native.ResourceUtility.GetObject(ResourceManager, id))); + } + [System.SerializableAttribute()] + internal enum BinaryResources : short + { + favicon = -22914, + } + } +} diff --git a/WebServer.Sample/Resources.resx b/WebServer.Sample/Resources.resx new file mode 100644 index 0000000..149ef4f --- /dev/null +++ b/WebServer.Sample/Resources.resx @@ -0,0 +1,124 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + Resources\favicon.ico;System.Byte[], mscorlib, Version=1.9.1.0, Culture=neutral, PublicKeyToken=c07d481e9758c731 + + \ No newline at end of file diff --git a/WebServer.Sample/Resources/favicon.ico b/WebServer.Sample/Resources/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..03a028f0cee5cfca6208c2472a7ef09fcbc549b4 GIT binary patch literal 1150 zcma))Jt)Ls9LK-PXdq>gvN4!$@sc`&7?hNBS8NOhWs=Lnpp;1|MU-T8ce+6-gUv!l zq`V{ppnqB`to{VXk-n`}5V+|z!>$rX@t~vVeoIlL` zV7=@5#c+BnAPGDJdvz4kBNyP#+TASu9or+jrAGV;*K;|UE|9YLk*6?F67lTp>U zzH#)kyQq2!{Dt)!ceix2p=stR>x1#ITH%Y}!Ka@kGs+p8m>=MkoZbH_{28RIla8t% ze)+S1x2XX7*L^XsT|XVye!;VI8HQZ{n@{zrgy+|NuWj=Dgmu#i4dQi!7T5RV5rqMai9;wrO&VC9X`7P_GbH5|@TySEO|J&x5 u`%B{;Y@inz>r>fZIrBVE%7OdIJaSAgC|%7+$CaQu&rLJWa!+2qW8F_W-sWon literal 0 HcmV?d00001 diff --git a/WebServer.Sample/WebServer.Sample.nfproj b/WebServer.Sample/WebServer.Sample.nfproj index 137101a..cb415b9 100644 --- a/WebServer.Sample/WebServer.Sample.nfproj +++ b/WebServer.Sample/WebServer.Sample.nfproj @@ -25,6 +25,11 @@ + + True + True + Resources.resx + @@ -38,6 +43,11 @@ True True + + ..\packages\nanoFramework.ResourceManager.1.1.2-preview.11\lib\nanoFramework.ResourceManager.dll + True + True + ..\packages\nanoFramework.Runtime.Events.1.8.2-preview.10\lib\nanoFramework.Runtime.Events.dll True @@ -84,6 +94,15 @@ True + + + nFResXFileCodeGenerator + Resources.Designer.cs + + + + + diff --git a/WebServer.Sample/packages.config b/WebServer.Sample/packages.config index 4af3204..05fc831 100644 --- a/WebServer.Sample/packages.config +++ b/WebServer.Sample/packages.config @@ -1,6 +1,7 @@  +