gpt4 book ai didi

c# - Image.FromStream(PostedFile.InputStream) 失败。 (参数无效。)(AsyncFileUpload))

转载 作者:太空狗 更新时间:2023-10-29 22:56:08 37 4
gpt4 key购买 nike

我正在使用 AsyncFileUpload(AJAX 工具包)上传图像。我有一个处理图像大小调整的按钮。这已经工作了一段时间,但现在不行了......

protected void BtnUploadImage_Click(object sender, EventArgs e)
{
var imageFileNameRegEx = new Regex(@"(.*?)\.(jpg|jpeg|png|gif)$",
RegexOptions.IgnoreCase);
if (!AsyncFileUpload1.HasFile ||
!imageFileNameRegEx.IsMatch(AsyncFileUpload1.FileName))
{
AsyncFileUpload1.FailedValidation = true;
ErrorLabel.Visible = true;
return;
}
ErrorLabel.Visible = false;

var file = AsyncFileUpload1.PostedFile.InputStream;

var img = Image.FromStream(file, false, false);

...
}

另一件我觉得很奇怪的事情:如果我尝试使用小于 80kb 的图像,它会起作用......!

我们已经尝试重启服务器,但没有任何变化。相同的代码在我的机器上运行良好。 (之前听说过 ?? :) )

我还尝试将文件保存在服务器上,然后通过 Image.FromFile() 获取文件,但随后出现“无法访问已关闭的文件”。

如何解决?

最佳答案

我会确保流位于开头:

var file = AsyncFileUpload1.FileContent;
file.Seek(0, SeekOrigin.Begin);

var img = Image.FromFile(file);

要检查的第二件事:the requestLengthDiskThreshold环境。除非指定,否则此设置的默认值为……是的,80 KB。

注意:在我看来,无论是使用 Image 直接读取文件流还是使用中间 MemoryStream(除了在后一种情况下您实际加载整个文件进入内存两次)。无论哪种方式,原始文件流都会被读取,因此流位置、CAS 权限、文件权限等仍然适用。

注意 2: 是的,一定要确保正确处理这些资源 :)

关于c# - Image.FromStream(PostedFile.InputStream) 失败。 (参数无效。)(AsyncFileUpload)),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1614773/

37 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com