2012-09-24 44 views
3

我正在通過xml-rpc.net與一個.net程序通過wordperss進行通信。我發現如果我想通過「wp.uploadFile」上傳一個很大的圖片,wordpress會返回一個錯誤,說「解析錯誤(-32700),很好,沒有形成」。我試圖用Windows Live Write來寫一篇文章。但是,如果我選擇鏈接源圖片,則出現錯誤,說我無法上傳圖片,並建議通過ftp上傳圖片。Wordpress無法通過wp.uploadFile使用c上傳圖像#

我發現這篇文章: 圖片上傳失敗

我覺得有可能還是在讀大的請求不包含斷裂線的一些問題,所以我創建XML自己,並添加斷線('\ r \ n')根據RFC 822每76個字符。但問題仍然存在,換句話說,我無法上傳任何大的圖像。 我的XML文件如下:

<?xml version="1.0" encoding="utf-8" standalone="yes"?> 
<methodCall> 
    <methodName>wp.uploadFile</methodName> 
    <params> 
    <param> 
     <value> 
     <i4>0</i4> 
     </value> 
    </param> 
    <param> 
     <value> 
     <string>myname</string> 
     </value> 
    </param> 
    <param> 
     <value> 
     <string>mypwd</string> 
     </value> 
    </param> 
    <param> 
     <value> 
     <struct> 
      <member> 
      <name>name</name> 
      <value> 
       <string>MS-wedge.jpg</string> 
      </value> 
      </member> 
      <member> 
      <name>type</name> 
      <value> 
       <string>image/jpeg</string> 
      </value> 
      </member> 
      <member> 
      <name>bits</name> 
      <value> 
       <base64> 
/9j/4AAQSkZJRgABAQEBLAEsAAD7gAOQWRvYmUAZAAAAAAB+EVpkV4aWYAAE1NACoAAAAIABAB 
AAADAAAAARIAAAABAQADAAAAAQwAAAABAgADAAAAAwAAAM4BBgADAAAAAQACAAABDwACAAAAEgAA 
<!-- ... pending other data --> 
</base64> 
      </value> 
      </member> 
      <member> 
      <name>overwrite</name> 
      <value> 
       <boolean>false</boolean> 
      </value> 
      </member> 
     </struct> 
     </value> 
    </param> 
    </params> 
</methodCall> 

回答

1

我已經與WordPress XML-RPC工作了3年。 我附上了一個上傳請求示例,它可以很好地作爲您的參考。我希望這可以幫助你。

<?xml version="1.0"?> 
    <methodCall><methodName>wp.uploadFile</methodName> 
     <params> 
      <param> 
       <value><string>1</string></value> 
      </param> 
     <param> 
       <value><string>username</string></value> 
     </param> 
     <param> 
       <value><string>password</string></value> 
     </param> 
     <param> 
       <value><struct> 
        <member> 
         <name>name</name> 
         <value><string>Photo Jun 27, 2013, 3:08 PM.jpg</string></value> 
        </member> 
        <member><name>type</name><value><string>image/jpeg</string></value> 
        </member> 
        <member><name>bits</name><value><base64>/9j/4AAQSkZJRgABAQAAAQABAAD/4QBYRXhpZgAATU0AKgAAAAgAAgESAAMAAAABAAEAAIdpAAQA 
<!-- ... pending other data --> 
</base64></value></member> 
        <member><name>overwrite</name><value><string>false</string></value></member></struct></value></param></params></methodCall> 
+0

Thx。我試圖在vs2010上構建這個項目,它的工作原理很奇怪,不是嗎? – user1694035

+0

這很好!我知道有時會發生這種事情:) – Tommy