diff --git a/modules/blogging/src/Volo.Blogging.Admin.Application/Volo.Blogging.Admin.Application.csproj b/modules/blogging/src/Volo.Blogging.Admin.Application/Volo.Blogging.Admin.Application.csproj
index 4db4a03862..456777e60a 100644
--- a/modules/blogging/src/Volo.Blogging.Admin.Application/Volo.Blogging.Admin.Application.csproj
+++ b/modules/blogging/src/Volo.Blogging.Admin.Application/Volo.Blogging.Admin.Application.csproj
@@ -11,7 +11,10 @@
-
+
+
+
+
diff --git a/modules/blogging/src/Volo.Blogging.Application/Volo.Blogging.Application.csproj b/modules/blogging/src/Volo.Blogging.Application/Volo.Blogging.Application.csproj
index cde97b1091..504d32836d 100644
--- a/modules/blogging/src/Volo.Blogging.Application/Volo.Blogging.Application.csproj
+++ b/modules/blogging/src/Volo.Blogging.Application/Volo.Blogging.Application.csproj
@@ -9,9 +9,12 @@
Volo.Blogging.Application
+
+
+
+
-
diff --git a/modules/blogging/src/Volo.Blogging.Application/Volo/Blogging/Files/FileUploadConsts.cs b/modules/blogging/src/Volo.Blogging.Application/Volo/Blogging/Files/FileUploadConsts.cs
index 28cb3491f3..d7164dc261 100644
--- a/modules/blogging/src/Volo.Blogging.Application/Volo/Blogging/Files/FileUploadConsts.cs
+++ b/modules/blogging/src/Volo.Blogging.Application/Volo/Blogging/Files/FileUploadConsts.cs
@@ -1,20 +1,24 @@
using System.Collections.Generic;
using System.Collections.ObjectModel;
-using System.Drawing.Imaging;
using System.Linq;
+using SixLabors.ImageSharp.Formats;
+using SixLabors.ImageSharp.Formats.Bmp;
+using SixLabors.ImageSharp.Formats.Gif;
+using SixLabors.ImageSharp.Formats.Jpeg;
+using SixLabors.ImageSharp.Formats.Png;
namespace Volo.Blogging.Files
{
public class FileUploadConsts
{
- public static readonly ICollection AllowedImageUploadFormats = new Collection
+ public static readonly ICollection AllowedImageUploadFormats = new Collection
{
- ImageFormat.Jpeg,
- ImageFormat.Png,
- ImageFormat.Gif,
- ImageFormat.Bmp
+ JpegFormat.Instance,
+ PngFormat.Instance,
+ GifFormat.Instance,
+ BmpFormat.Instance,
};
- public static string AllowedImageFormatsJoint => string.Join(",", AllowedImageUploadFormats.Select(x => x.ToString()));
+ public static string AllowedImageFormatsJoint => string.Join(",", AllowedImageUploadFormats.Select(x => x.Name));
}
}
diff --git a/modules/blogging/src/Volo.Blogging.Application/Volo/Blogging/Files/ImageFormatHelper.cs b/modules/blogging/src/Volo.Blogging.Application/Volo/Blogging/Files/ImageFormatHelper.cs
index 6a9521664d..9fccb1e03a 100644
--- a/modules/blogging/src/Volo.Blogging.Application/Volo/Blogging/Files/ImageFormatHelper.cs
+++ b/modules/blogging/src/Volo.Blogging.Application/Volo/Blogging/Files/ImageFormatHelper.cs
@@ -1,27 +1,33 @@
-using System.Collections.Generic;
-using System.Drawing.Imaging;
+using System;
+using System.Collections.Generic;
using System.IO;
-using System.Runtime.InteropServices;
+using SixLabors.ImageSharp;
+using SixLabors.ImageSharp.Formats;
namespace Volo.Blogging.Areas.Blog.Helpers
{
public class ImageFormatHelper
{
- public static ImageFormat GetImageRawFormat(Stream stream)
+ public static IImageFormat GetImageRawFormat(Stream stream)
{
- return System.Drawing.Image.FromStream(stream).RawFormat;
+ using (var image = Image.Load(stream, out var imageFormat))
+ {
+ return imageFormat;
+ }
}
- public static bool IsValidImage(Stream stream, ICollection validFormats)
+ public static bool IsValidImage(Stream stream, ICollection validFormats)
{
- // System.Drawing only works on windows => https://docs.microsoft.com/en-us/dotnet/api/system.drawing.image?view=net-5.0#remarks
- if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows))
+ try
{
var imageFormat = GetImageRawFormat(stream);
+
return validFormats.Contains(imageFormat);
}
-
- return true;
+ catch (Exception e)
+ {
+ return false;
+ }
}
}
}