В GDI + произошла общая ошибка при сохранении изображения - PullRequest
0 голосов
/ 26 февраля 2019

Мне нужно сохранить изображение в post запросе в формате byte64String, когда я сохраняю это изображение, я получаю A generic error occurred in GDI+

вот мой код

byte[] ix = Convert.FromBase64String(obj.Image);

var ID = obj.Id;

using (var mStream = new MemoryStream(ix))
{
var img = Image.FromStream(mStream);

var image = obj.ImageName + ".jpg";
string path = HostingEnvironment.MapPath("/Images/" + ImageType + "/" + ID + "/" + image);
System.IO.Directory.CreateDirectory(path);


try
{
   img.Save(path, System.Drawing.Imaging.ImageFormat.Jpeg);

}
catch (Exception e)
{
var d = e;
}
}

также это не проблема разрешения, так как я могу создавать текстовые файлы в том же каталоге

1 Ответ

0 голосов
/ 26 февраля 2019

Проще говоря, вы путаете пути и имена файлов.

Проблема в том, что если вы можете поставить под сомнение догадку, у вас, вероятно, есть папка с вашим именем файла, и вы пытаетесь сохранить файл с тем же именем, которыйWindows запрещает

Ваш код подправлен

var image = $"{obj.ImageName }.jpg";

// get the path, and only the path
string path = HostingEnvironment.MapPath($"/Images/{ImageType}/{ID}/");

// Create directory if needed (from that path)
Directory.CreateDirectory(path,image);

...

// now create the correct full path    
var fullPath = Path.Combine(path,fileName);

// save
img.Save(fullPath, ImageFormat.Jpeg);
...