Сохраните содержимое строки изображения в кодировке base64 в файл - PullRequest
0 голосов
/ 15 октября 2018

Я хочу сохранить путь к изображению в базе данных.Я использую строковое изображение, которое не сохраняется в папке, но имя изображения также сохраняется в базе данных.Я использую строку, поэтому 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);

1 Ответ

0 голосов
/ 16 октября 2018

Почему я использую строку?Потому что, когда я использую public HttpPostedFileBase imagefile {get;set;}, он показывает нулевое значение в контроллере.

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

Например, HTTPPostedFileBase всегда возвращает ноль в контроллере .

В любом случае, если вы хотите сохранить изображение, в котором byte[] data содержит байты, то просто запишите эти байты в файл:

File.WriteAllBytes(fileName, data);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...