我实际上已经尝试了所有可能的方法,但显然我无法找出正确的方法。
我正在尝试将图像上传到安装在 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;
}
}