ASP.NET网页 – 使用WebImageresize和保存照片

我正在使用ASP.NET网页创建一个表单,我可以在其中选择图像。 我想将图像调整为各种不同的尺寸,以便我可以在我的网站上显示它们。

这适用于较小的图像(在文件大小),但我想要resize的图像来自我的数码单反相机,它们可以大到每个jpeg 14MB。 我收到以下错误…

Maximum request length exceeded. 

我添加了一个带有以下代码的web.config

        

我不再收到错误,但实际上并没有做任何事情。 它仍适用于较小的图像。

我在这里使用了这个教程: http : //www.asp.net/web-pages/tutorials/files,-images,-and-media/9-working-with-images

我的代码如下:

 @{ WebImage photo = null; var newFileName = ""; var imagePath = ""; var imageThumbPath = ""; if(IsPost){ photo = WebImage.GetImageFromRequest(); if(photo != null){ newFileName = "Original_" + Path.GetFileName(photo.FileName); imagePath = @"images\" + newFileName; photo.Save(@"~\" + imagePath); newFileName = "Thumbnail_" + Path.GetFileName(photo.FileName); imagePath = @"images\" + newFileName; photo.Resize(width: 60, height: 60, preserveAspectRatio: true, preventEnlarge: true); photo.Save(@"~\" + imagePath); } } }    Resizing Image   

Thumbnail Image

Creating Thumbnail Image

任何想法为什么它不适用于更大的图像。 任何帮助赞赏!

微软的WebImage类真的 非常糟糕。 在阅读了源代码并发现前两页或三页中的~10个关键错误之后,我放弃了它。 它不是服务器安全的。

我的imageresizing.net库旨在在服务器上运行,并更好地管理内存。 对于SLR照片,您仍然需要大约100-200MB的RAM来解压缩单个图像,但如果您有这样的话,它应该可靠地完成工作。 它已成功用于千兆像素大小的图像,因此只要你有一茶匙的RAM,你的单反就会很容易

以下是如何使用库上载,resize和保存的示例 。 使用上传的文件名是一个非常大的漏洞 – GUID是一个更安全的选择。

但是,由于库非常快,并且旨在支持单源映像,因此您可以考虑仅保存原始映像并动态生成缩略图。 DiskCache插件将它们作为静态文件缓存到磁盘,由IIS提供 – 它提供了出色的性能。