0

我们正在尝试在我们的 ASP.NET MVC3 网站中以编程方式生成图库缩略图,而不是一直手动执行此操作。

我们正在寻找实现一个功能,检查 TEMP 文件夹是否存在缩略图,否则创建并使用它。

控制器动作是实现这一点的正确位置吗?这个动作应该返回什么?

当画廊页面上有许多缩略图时(有些总是丢失,因为点击次数过多?),我们已经实现了动态图像生成,我们想尝试一种不同的方法。

谢谢。

4

3 回答 3

1

我建议您不要自己创建图像/缩略图生成器,而是使用http://imageresizing.net一个具有许多高级功能和插件(cahcing、创建缩略图、动态调整大小等)的 C# 库

这是 NuGet 网址: http: //nuget.org/packages/ImageResizer/

这是我使用的示例配置

<resizer>
  <plugins>
    <add name="MvcRoutingShim" />
    <add name="DiskCache" />
  </plugins>
  <diskCache dir="~/imagecache" autoClean="false" hashModifiedDate="true" enabled="true" subfolders="32" cacheAccessTimeout="3000" asyncWrites="false" asyncBufferSize="10485760" />
  <clientcache minutes="7200" />
</resizer>
于 2013-06-27T11:35:53.957 回答
0

我会在一个单独的进程中进行这样的处理,最好是 Windows 服务。

AppDomain 可以被 IIS 回收,并且您的缩略图处理线程可能会在工作中被杀死。这同样适用于部署新版本网站或更改配置时。

监视和维护 IIS 工作进程中的后台线程可能比单独的 Windows 服务更困难。

于 2013-06-27T09:46:58.000 回答
0

就个人而言,我会创建一个ImageThumbnailService或类似的,并通过适当的界面将其公开给您的网络应用程序。这样,您的应用程序只需要向服务请求缩略图,服务就可以担心文件是否存在等,如果不存在则调用其他类来创建缩略图。

于 2013-06-27T09:49:12.467 回答