2014-04-26 76 views
2

我使用beatbox和python將文檔上傳到Salesforce,並且文件連接正確,但文件中包含的數據完全損壞。通過Beatbox上傳附件到Salesforce API

def Send_File(): 
    import beatbox 
    svc = beatbox.Client() # instantiate the object 
    svc.login(login1, pw1) # login using your sf credentials 

    update_dict = { 
     'type':'Attachment', 
     'ParentId': accountid, 
     'Name': 'untitled.txt', 
     'body':'/Users/My_Files/untitled.txt', 
      } 
    results2 = svc.create(update_dict) 
    print results2 

輸出爲:

00Pi0000005ek6gEAAtrue 

所以事情經過以及即將到來,但是當我去到Salesforce的記錄00Pi0000005ek6gEAA並查看該文件的文件的內容是:

˝KÆœ  Wøä ï‡Îä˜øHÅCj÷øaÎ0j∑ø∫{b∂Wù 

我不知道是什麼原因導致了這個問題,我找不到發生在其他人身上的任何情況

鏈接到SFDC Documentation on uploads

回答

2

在字典中的「體」值應編碼的文件,而不是文件名的內容的BASE64。你需要自己讀取和編碼文件內容。例如

body = "" 
with open("/Users/My_Files/untitled.txt", "rb") as f: 
    body = f.read().encode("base64") 

update_dict = { 
    'type' : 'Attachement' 
    'ParentId' : accountId, 
    'Name' : 'untitled.txt', 
    'Body' : body } 

... 

文檔約Attachment