Привет, я работаю в приложении, где мы предоставляем пользователю возможность изменить изображение своего профиля.
Я использую элемент управления загрузкой файлов для выбора файлов. Это позволяет максимум 100 МБ.
Но я ограничиваю размер изображения 30 Мб. Изображения загружаются до 20 МБ без проблем. Когда он превышает 20 МБ, отображается исключение 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);
}
}
Я сделал какую-нибудь ошибку ?? Или предложите любой другой способ сохранить изображение.
Заранее спасибо !!! Любая помощь будет оценена.
BinaryReader
? Или используйте его в выраженииusing
. Совершенно уверен, что он реализуетIDisposable
, так что у вас может быть утечка. - person Pierre-Luc Pineault   schedule 15.12.2015