我想将图像路径保存在数据库中。我使用的字符串类型图像不保存在文件夹中,但图像名称也保存在数据库中。我正在使用字符串,因此SaveAs()
无法编译。
为什么我使用字符串?因为当我使用public HttpPostedFileBase imagefile {get;set;}
时,它在控制器中显示一个空值。
型号
public string imagePath { get;set; } // contains the name of the image
public string imageFile { get;set; } // contains string bytes
C#
byte[] data = Convert.FromBase64String(Quot[i].imageFile.Replace("data:image/jpeg;base64,", ""));
Image img;
MemoryStream ms = new MemoryStream(data, 0, data.Length);
ms.Write(data, 0, data.Length);
img = Image.FromStream(ms, true);
string fileName = Path.GetFileNameWithoutExtension(Quot[i].imagePath);
string extension = Path.GetExtension(Quot[i].imagePath);
fileName = fileName + DateTime.Now.ToString("dd/MM/yyyy") + extension;
Quot[i].imagePath = "~/AppFiles/Images/" + fileName;
fileName = Path.Combine(HttpContext.Current.Server.MapPath("~/AppFiles/Images/"), fileName);
Quot[i].imageFile.SaveAs(fileName);
答案 0 :(得分:0)
为什么我使用字符串?因为当我使用
public HttpPostedFileBase imagefile {get;set;}
时,它在控制器中显示一个空值。
然后解决该问题,而不是将代码转换为可使用base64字符串。
例如参见HTTPPostedFileBase always return null in controller。
无论如何,如果要保存byte[] data
包含字节的图像,则只需将这些字节写入文件中即可。
File.WriteAllBytes(fileName, data);