嗨我正在一個應用程序中,我們提供選項來更改用戶的配置文件圖像。如何避免使用BinaryReader時出現OutOfMemoryException
我正在使用文件上傳控件來選擇文件。它允許最大100MB。
但我限制圖像大小爲30Mb。上傳至20MB的圖像沒有任何問題。當它超過20MB時,它顯示OutOfMemoryException。我使用BinaryReader來保存圖像。
var file = context.Request.Files[0];
if (!Directory.Exists(Folder))
{
Directory.CreateDirectory(Folder);
}
if (file.ContentLength != 0)
{
if (Directory.Exists(targetFolder + "\\" + context.Request["Name"]) == false)
{
Directory.CreateDirectory(targetFolder + "\\" + context.Request["Name"]);
}
var binaryReader = new BinaryReader(file.InputStream);
var memoryBytes = binaryReader.ReadBytes(file.ContentLength);
using (var memoryStream = new MemoryStream(memoryBytes))
{
var imageStream = Image.FromStream(memoryStream);
imageStream.Save(targetFolder + "\\" + context.Request["Name"] + "\\" + "picture" + ".png" , ImageFormat.Png);
}
}
有沒有我犯的錯誤?或者請建議任何其他方法來保存圖像。
在此先感謝!任何幫助,將不勝感激。
也許這個答案給你一些想法http://stackoverflow.com/a/8613300/2263683 –
可能不會解決你的問題,但不應該關閉'BinaryReader'?或者在'using'語句中使用它。很確定它實現了'IDisposable',所以你可能會在那裏泄漏。 –
我已經使用BinaryReader,但問題沒有解決。我得到同樣的例外。 – Shesha