.Net Core - 使用 Imageflow 调整图像大小

.Net Core - Resizing images using Imageflow

我正在尝试在我的 .net 核心应用程序中使用 Imageflow 的查询字符串 API 调整图像大小。 我已经安装了 Imageflow.Server。 我的配置方法如下所示:

public void Configure(IApplicationBuilder App, IWebHostEnvironment Env)
    {
        if (AppSettings.IsDevelopment)
        {
            App.UseDeveloperExceptionPage();
        }
        else
        {
            App.UseExceptionHandler(Options =>
            {
                App.UseExceptionHandler("/error/404/");

            });
            App.UseHsts();
        }

        App.UseImageflow(new ImageflowMiddlewareOptions()
            .SetMapWebRoot(false)
            .MapPath("/upload/", "{upload folder path}"));

        App.UseFileServer();
        App.UseRouting();
        App.UseSession();

        App.UseEndpoints(Endpoints =>
        {
            Endpoints.MapControllers();
        });

    }

本地主机或上传文件夹在 wwwroot 文件夹内没有问题,但如果上传文件夹在应用程序根目录之外,则图像不会调整大小。 有什么想法可以解决这个问题吗?

这可能是权限问题。如果磁盘权限不允许用户帐户 运行 应用程序访问该文件夹,它将失败。

如果您已将该文件夹注册为虚拟目录,IIS 将阻止 ASP.NET Core 提供这些文件或调整这些文件的大小。

取消映射 IIS 中的虚拟目录并改用 ASP.NET 核心。

要允许 ASP.NET Core 提供文件,请再次调用 UseStaticFiles 以映射该虚拟目录:https://docs.microsoft.com/en-us/aspnet/core/fundamentals/static-files?view=aspnetcore-3.1

您还需要为同一虚拟目录调用 ImageflowMiddlewareOptions 上的 MapPath。