2017-02-15 68 views
1

我正在使用Trello API將文件上傳(並附加)到卡上。當附件通過API上傳時,Trello附件服務錯誤Content-Type

我發表的帖子中https://api.trello.com/1/cards/my-card-id/attachments

郵件正文是JSON

{ file: file_contents, 'BuildSheet.html': filename, mimeType: 'text/html' } 

file_contents is a string that contains the body of the file I want to attach. 

工程。該文件被上傳並附加。當我獲取卡片數據時,這是我看到的有關此附件的內容。

{"id":"58a496bc751c0c2fa260630f", 
"bytes":3291, 
"date":"2017-0215T17:58:20.881Z", 
"edgeColor":null, 
"idMember":"55240806b8ca85db897253c4", 
"isUpload":true, 
"mimeType":"text/html", 
"name":"BuildSheet.html", 
"previews":[], 
"url":"https://trello-attachments.s3.amazonaws.com/589ca323806c1d80cc03ea12/589ceda619d5936e8428f15b/1f62074b6700e61e611a90beaa8c2c73/Upload"} 

您可以看到mimeType設置正確。名字也是正確的。但是,如果您從UI內部上傳,則url不會像使用該文件一樣。所以該文件沒有.html擴展名。

當我下載的文件,它包含了這個頭

Content-Type: application/octet-stream 

它應該是text/html的。這會導致瀏覽器下載文件而不是顯示它。

我做錯了什麼?有沒有其他人有這個問題?

此外,有什麼辦法讓Trello在構建url時使用文件名?

回答

0

當我附上一個文件或URL到Trello卡,我用POST只有url,像這樣(的JavaScript):

var id = 'something'; 
var attach = 'https://www.cs.tut.fi/~jkorpela/forms/file.html'; 

var payload = {"url": attach}; 
var blob = new Blob([JSON.stringify(payload)], {type: 'application/json'}); 
var url = 'https://api.trello.com/1/cards/'+id+'/attachments?key='+API_KEY+'&token='+TOKEN; 

var xhttp = new XMLHttpRequest(); 
xhttp.open("POST", url, true); 
xhttp.send(blob); 

並在此之後,當我拿到卡的JSON,這件事情像這樣:

{"id":"xxx...", ... 
"actions":[{ 
    "id":"yyy...", 
    "idMemberCreator":"...", 
    "data":{ 
    "board":{ ... 
    "attachment":{ 
     "url":"https://www.cs.tut.fi/~jkorpela/forms/file.html", 
     "name":"https://www.cs.tut.fi/~jkorpela/forms/file.html", 
     "id":"zzz..."}}, ... 

您可以通過在URL的末尾添加.json拿到卡的JSON。您可以看到nameurl相同,但在此處沒有mimeType。在the documentation中找不到它。你是以哪種方式獲取卡數據?如果您使用JavaScript,上面的代碼可能會對您有所幫助。

至於定製卡的網址,我什麼都不知道,我想這是不可能的。

0

{文件:file_contents, 'BuildSheet.html':文件名,mime類型: 'text/html的'}

您是否嘗試過使用該密鑰namereference