私は文字通りこれについてあらゆる方法を試しましたが、どうやら正しい方法を理解できないようです。
wordpress ブログにインストールされている次世代ギャラリーに画像をアップロードしようとしています。xml-rpc に関するすべてが機能しているため、他のすべてのことを実行できます。
問題は、サーバーが画像が有効でないというエラーを返すことです。問題がbase64に関するものであることは明らかです。ただし、テスト目的で、base64 文字列をコピーしてチェックしたところ、それが適切であることがわかりました。外部の base64 から画像へのコンバーターを使用して、画像に正しく変換されます。
これは、クエリを送信する行です。
result = categories.newImage(1, "admin", "password", newImage);
newImage の構造体は次のとおりです。
public struct imageI
{
public string name;
public string type;
public string bits;
public bool overwrite;
public int gallery;
public int image_id;
}
これは、画像をbase64に変換するとともに、新しい画像を初期化する方法です
//Creating the image base64 string
string filename = "asd.jpg";
Image image1 = Image.FromFile(filename);
string base64 = ImageToBase64(image1, image1.RawFormat);
//for test purposes i copied and checked the base64 and it is just right, it converts right to the image using an external base64 to image converter.
Clipboard.SetText(base64);
//Creating a newImage
imageI newImage = default(imageI);
newImage.name = "newImage";
newImage.bits = base64;
newImage.gallery= 86;
そして最後に、私のメソッド "ImageToBase64(Image, ImageFomat)";
public string ImageToBase64(Image image, System.Drawing.Imaging.ImageFormat format)
{
using (MemoryStream ms = new MemoryStream())
{
// Convert Image to byte[]
image.Save(ms, format);
byte[] imageBytes = ms.ToArray();
// Convert byte[] to Base64 String
string base64String = Convert.ToBase64String(imageBytes);
return base64String;
}
}