我正在尝试创建一个画廊,用户在其中使用 fileupload 控件上传图像,然后调整大小然后保存到服务器上的文件系统。他们可以上传 jpg、png 和 gif 文件。
我知道您可以上传然后检查大小的过程,但这似乎效率低下。我听说过 memorystream,但不确定如何使用它。
谢谢...
在完整文件位于服务器端之前,您无法调整图片大小。
是的,它效率低下,但这是网络的现实。唯一的选择是使用客户端代码(activex、silverlight、flash),但这可能不是一个好习惯。
您可以尝试使用此代码 - 指定的大小以千字节为单位。默认值为 4096 KB (4 MB)。
if (FileUpload1.HasFile)
{
if (FileUpload1.PostedFile.ContentLength < yourSize) //Adjust your size
{
.........
}
else
{
Label1.Text = "File size exceeds maximum limit 20 MB.";
}
}
默认情况下,最大上传为 4mb(使用 .Net) - 可以使用重置
<httpRuntime executionTimeout="sss" maxRequestLength="xxxx" />
然而,这确实是一种讨厌的方式,因为友好的错误消息很少被接收(即没有好的消息)。如果 HTTPRunTime 也超过了,即使在 Upload 上使用 ContentLength 也会被炸毁。Microsoft 建议使用更大的 httRuntime 值,然后通过 ContentLength 进行限制(打破两者都会导致讨厌的错误 - 通常)。
另一种选择是使用这样的东西 ==> Ajax Uploader