Лучший способ сохранить изображение? - PullRequest
0 голосов
/ 08 января 2012

У меня есть приложение asp.net mvc, которое позволяет загружать изображения. Мне интересно, как лучше это сделать.

Прямо сейчас у меня есть это

HttpPostedFileBase uploadedImg = Session[SessionImgKey] as HttpPostedFileBase;

if (uploadedImg != null)
{
    string fileName = CreateFile(MyField.Name, uploadedImg);
    tableA.ImagePath = String.Concat(ImgFolderPathLoctaion, "\\", fileName);
}

Это нормально, но я хочу переместить мой уровень сервиса и не хочу импортировать web.dll в мой проект уровня сервиса.

Так я должен использовать поток? или что-то вроде Сохранение изображения (я думаю, что это может быть более приспособленным для изображений через класс рисования, а не для загруженных изображений.

Ответы [ 2 ]

1 голос
/ 08 января 2012

Вы можете получить поток изображений из опубликованного файла, преобразовать его в изображение (System.Drawing) и затем сохранить его:

var stream = uploadedImg.InputStream;
var buffer = new byte[stream.Length];
stream.Read(buffer, 0, buffer.Length);
//convert stream into image
Image myImage = Image.FromStream(new MemoryStream(buffer));
myImage.Save("c:\myimage.jpg");
0 голосов
/ 08 января 2012

Если вам необходимо передать файл на уровень службы, используйте свойство InputStream HttpPostedFileBase для передачи потока.Делая это таким образом, ваш сервисный уровень не знает о вашем веб / уровне представления.

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