我尝试使用 System.Drawing.Image 在 ASP.NET Core MVC 中保存图像,但出现此错误A generic error occurred in GDI+,并且不知道如何修复它。我在这行代码中收到错误: newImg.Save(_hostingEnvironment.ContentRootPath, img.RawFormat);位于方法中SaveToFolder。这是我的 IRepository 中的所有代码: using System; using System.Collections.Generic; using System.Drawing; using System.IO; using System.IO.Compression; using System.Linq; using System.Net.Mime; using System.Threading.Tasks; using AstroPhotoWebSite_v3.Data; using AstroPhotoWebSite_v3.Interfaces; using AstroPhotoWebSite_v3.Models; using Microsoft.AspNetCore.Hosting; using Microsoft.AspNetCore.Http; namespace AstroPhotoWebSite_v3.Repositories { public class GalaxysRepository : IRepository<GalaxysModel> { private readonly ApplicationDbContext _context; private readonly IHostingEnvironment _hostingEnvironment; private ApplicationDbContext context; public GalaxysRepository(ApplicationDbContext context, IHostingEnvironment hostingEnvironment) { this.context = _context; _hostingEnvironment = hostingEnvironment; } public List<GalaxysModel> Entities => _context.Galaxys.ToList(); private Size NewImageSize(Size imageSize, Size newSize) { Size finalSize; double tempval; if (imageSize.Height > newSize.Height || imageSize.Width > newSize.Width) { if (imageSize.Height > imageSize.Width) { tempval = newSize.Height / (imageSize.Height * 1.0); } else
1 回答
牧羊人nacy
TA贡献1862条经验 获得超7个赞
我记得我也遇到过同样的问题,当您尝试保存图像的文件夹在物理路径中不存在时,通常会发生这种情况,因此请尝试创建该文件夹并重试,否则您必须创建该文件夹如果不存在使用以下代码:
Image image = Image.FromStream(stream);
string folderName = @"YourFolderPath";
string path = Path.Combine(_hostingEnvironment.ContentRootPath, folderName);
bool exists = Directory.Exists(path);
if (!exists)
Directory.CreateDirectory(path);
image.Save(path);
image.Dispose();
stream.Dispose();
我建议在您的 SaveToFolder 函数中使用它,但是,因为我可以看到您已经在图像路径中添加了文件夹路径,您应该将其与函数一起传递,或者在创建函数中进行此检查。
- 1 回答
- 0 关注
- 113 浏览
添加回答
举报
0/150
提交
取消