2016-05-18 5 views
-1

ファイル(画像)をhtmlコントロールで読み込み、他のjsonプロパティとともにAPIに送信します。 絵プロパティが見えます:ファイルをjsonプロパティとして取得する方法

Picture: "data:image/png;abase64,iVBORw0KGgoAAAANS {a lot of chars}=" 

そして、私のコントローラに私が取得する必要があります。データベース 4.幅、高さ 5に保存する 1.ファイル名 2.ファイルの拡張子 3.ファイル。その他の情報

どうすればいいですか?

var bytes = Convert.FromBase64String(model.Picture); 
Image image; 
using (var stream = new MemoryStream(bytes)) 
{ 
    image = Image.FromStream(stream); 
} 

しかし、画像名、拡張子を持つ性質を持っていない: 私はこれを持っています。

+0

あなたはイメージをシリアル化しますか?そのために使用するシリアライザとは何ですか? –

答えて

1

を試してみて、あなたは画像の種類に関してはについては

var height = image.Height; 
var width = image.Width; 

を使用することができます幅、私はこのスニペットが有用であることが判明:どのように

string mimeType = string.Empty; 
Guid id = image.RawFormat.Guid; 
if (id == ImageFormat.Png.Guid) 
{ 
    mimeType = "image/png"; 
} 
else if (id == ImageFormat.Bmp.Guid) 
{ 
    mimeType = "image/bmp"; 
} 
else if (id == ImageFormat.Emf.Guid) 
{ 
    mimeType = "image/x-emf"; 
} 
else if (id == ImageFormat.Exif.Guid) 
{ 
    mimeType = "image/jpeg"; 
} 
else if (id == ImageFormat.Gif.Guid) 
{ 
    mimeType = "image/gif"; 
} 
else if (id == ImageFormat.Icon.Guid) 
{ 
    mimeType = "image/ico"; 
} 
else if (id == ImageFormat.Jpeg.Guid) 
{ 
    mimeType = "image/jpeg"; 
} 
else if (id == ImageFormat.MemoryBmp.Guid) 
{ 
    mimeType = "image/bmp"; 
} 
else if (id == ImageFormat.Tiff.Guid) 
{ 
    mimeType = "image/tiff"; 
} 
else if (id == ImageFormat.Wmf.Guid) 
{ 
    mimeType = "image/wmf"; 
} 
0

は高さのために、この

var bytes = Convert.FromBase64String(model.Picture); 
     using (var imageToSave= new FileStream(filePath, FileMode.Create)) 
{ 
    imageToSave.Write(bytes ,0, bytes.Length); 
    imageToSave.Flush(); 
} 
+1

これは 'Picture'プロパティ値のプリアンブル(' data:image/png; abase64')がbase64でエンコードされていないので機能しません。 –

+0

時にはそれは "abase64"と時には "base64" ...私はどのファイル拡張子がわかりません。私はそれがイメージになることを知っている;) – Nerf

関連する問題