У меня есть страница загрузки изображений, которая прекрасно работает, когда я загружаю только файлы.
Я добавил функцию «Создать эскиз».Похоже, файловая система имеет дескриптор на изображениях, когда начинается процесс миниатюр.
Я получаю «неопределенную ошибку GDI +» только тогда, когда размер изображения превышает 250К.Когда размер файлов меньше 250 КБ, миниатюры создаются, как и ожидалось.
Какие есть варианты?Здесь есть элегантное решение?Я хочу что-то не хакерское.
Кроме того, я использую HttpFileCollection, чтобы мы могли загружать несколько изображений одновременно.Я пытался использовать .Dispose для создания миниатюр, но не удалось, прежде чем мы дойдем до этой точки.
public void Upload_Click(object Sender, EventArgs e)
{
string directory = Server.MapPath(@"~\images\");
HttpFileCollection hfc = Request.Files;
for (int i = 0; i < hfc.Count; i++)
{
HttpPostedFile hpf = hfc[i];
if (hpf.ContentLength > 0)
{
string fileName = hpf.FileName;
fileName = fileName.Replace(" ", "");
hpf.SaveAs(fileName);
createThumbnail(fileName);
}
}
}
private void createThumbnail(string filename)
{
Image image = Image.FromFile(filename);
Image thumb = image.GetThumbnailImage(100,100, () => false, IntPtr.Zero);
thumb.Save(filename);
image.Dispose();
thumb.Dispose();
}