2010-12-06 3 views
1

Salut à tous, Je suis en train de développer un site de travail qui va pousser des informations à partir d'une base de données dans Wordpress en utilisant Wordpress XML RPC. Je peux saisir des informations et les poster très bien, mais quand je parviens à télécharger des images, cela semble fonctionner (aucune erreur d'exécution/image dans l'onglet WP Media), mais il télécharge un lien d'image cassé. Il semble que ce soit en quelque sorte ne pas obtenir les données de mon image et je ne suis pas certain pourquoi voici une partie de mon code.WordPress XML RPC Télécharger l'image C#

MemoryStream ms = new MemoryStream(); 
    System.Drawing.Image img = System.Drawing.Image.FromFile(HttpContext.Current.Server.MapPath("_Images/DownloadButton-PSD.png")); 
    img.Save(ms, ImageFormat.Png); 
    byte[] imagebytes = new byte[ms.Length]; 
    ms.Position = 0; 
    ms.Read(imagebytes, 0, Convert.ToInt32(ms.Length)); 

après code charge l'info image que je passe à la fonction dans le format d'une variable de données

var data = new Data 
    { 
    Base64 = Convert.ToBase64String(imagebytes), 
    Name = "DownloadButton-PSD.png", 
    Type = "image/png", 
    Overwrite = false, 
    }; 
    _wpWrapper.UploadFile(data); 

FYI: J'utilise aussi les dll de http://joeblogs.codeplex.com/ pour mon projet

Les données de classe ressemble à ceci:

public class Data 
{ 
    public string Name { get; set; } 
    public string Type { get; set; } 
    public string Base64 { get; set; } 
    public bool Overwrite { get; set; } 
} 

La fonction File Upload ressemble à ceci:

public void UploadFile(Data data) 
    { 
     var xmlRpcData = Map.From.Data(data); 
     var result = _wrapper.UploadFile(this.BlogID, Username, Password, xmlRpcData); 

    } 
+0

une chance à ce sujet? – ariel

+0

Essentiellement non, au moment où je faisais cela, le code de JoeBlogs était incomplet. D'après ce que j'ai vu, vous voulez utiliser MediaObjects plutôt que des fichiers. – h34dhun73r

+0

Voir la solution ici. Il pourrait s'agir d'une version plus ancienne, mais vous devriez pouvoir l'utiliser, [http://pixpuffindev.blogspot.com/2012/08/posting-to-wordpress-with-c-using.html](http:/ /pixpuffindev.blogspot.com/2012/08/posting-to-wordpress-with-c-using.html) – hreinn1000

Répondre

2

Dans la bibliothèque JoeBlogs essayez d'utiliser la classe MetaWeblogWrapper et méthode: MediaObjectInfo NewMediaObject(MediaObject mediaObject) - pour l'image de téléchargement.