Gar*_*wis 0 c# asp.net image-resizing razor
我正在使用ASP.NET网页创建一个表单,我可以在其中选择图像.我想将图像调整为各种不同的大小,以便我可以在我的网站上显示它们.
这适用于较小的图像(在文件大小),但我想要调整大小的图像来自我的数码单反相机,它们可以大到每个jpeg 14MB.我收到以下错误...
Maximum request length exceeded.
Run Code Online (Sandbox Code Playgroud)
我添加了web.config以下代码:
<?xml version="1.0"?>
<configuration>
<system.web>
<compilation debug="false" targetFramework="4.0" />
<httpRuntime maxRequestLength="20480" />
</system.web>
</configuration>
Run Code Online (Sandbox Code Playgroud)
我不再收到错误,但实际上并没有做任何事情.它仍适用于较小的图像.
我在这里使用了这个教程: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);
}
}
}
<!DOCTYPE html>
<html>
<head>
<title>Resizing Image</title>
</head>
<body>
<h1>Thumbnail Image</h1>
<form action="" method="post" enctype="multipart/form-data">
<fieldset>
<legend> Creating Thumbnail Image </legend>
<label for="Image">Image</label>
<input type="file" name="Image" />
<br/>
<input type="submit" value="Submit" />
</fieldset>
</form>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
任何想法为什么它不适用于更大的图像.任何帮助赞赏!
微软的WebImage类是真的,真的很可怜.在阅读了源代码并发现前两页或三页中的10个关键错误后,我放弃了它.它不是服务器安全的.
我的imageresizing.net库旨在在服务器上运行,并更好地管理内存.对于SLR照片,您仍然需要大约100-200MB的RAM来解压缩单个图像,但如果您有这样的话,它应该可靠地完成工作.它已成功用于千兆像素大小的图像,因此只要你有一茶匙的RAM ,你的单反就会很容易.
以下是如何使用库上载,调整大小和保存的示例.使用上传的文件名是一个非常大的漏洞 - GUID是一个更安全的选择.
但是,由于库非常快,并且旨在支持单源映像,因此您可以考虑仅保存原始映像并动态生成缩略图.该DiskCache插件将他们缓存到磁盘静态文件,通过IIS服务-它提供了出色的性能.
| 归档时间: |
|
| 查看次数: |
8042 次 |
| 最近记录: |