私はRuby/Rhomobileアプリケーションを作成しています。これは画像をBase64でエンコードし、より大きなXMLの一部としてサーバー(ASP.NETでC#を実行している)に送信します。Ruby base64からC#base64
ただし、base64をデコードしてハードディスクに保存しようとすると、結果のファイルはイメージとして機能しません。ここで
は、関連するRubyコードです:
image_element = REXML::Element.new("image")
image_element.text = Base64.encode64(open(Rho::RhoApplication::get_blob_path(self.image_uri)) { |io| io.read })
form_element.add_element(image_element)
そしてここでは、私のC#のコードです:
var doc = new XmlDocument();
doc.LoadXml(Server.UrlDecode(Request.Form[0]));
var imageBase64 = doc.SelectNodes("//image")[0];
var imageBytes = imageBase64.InnerText;
using(var imgWriter = new FileStream(@"c:\img.jpg",FileMode.Create))
{
imgWriter.Write(imageBytes,0,imageBytes.Length);
}
は、クライアント側の画像ファイルで、間違いなくJPEGですか? –
@AdamRalphはい、間違いなくJPEGです。 – Svarog
は、元のクライアント側ファイルと同じ結果のサーバー側ファイルのサイズですか? –