1

我正在尝试在我的 .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 文件夹内,但如果上传文件夹在应用程序根目录之外,则图像不会调整大小。任何想法我该如何解决这个问题?

4

2 回答 2

0

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

于 2020-07-24T23:22:27.350 回答
0

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

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

To allow ASP.NET Core to serve files, call UseStaticFiles a second time to map that virtual directory: https://docs.microsoft.com/en-us/aspnet/core/fundamentals/static-files?view=aspnetcore-3.1

You'll also still want to call MapPath on ImageflowMiddlewareOptions for the same virtual directory.

于 2020-08-25T05:12:28.310 回答