2017-02-15 2 views
1

Ich verwende die Trello-API, um Dateien auf eine Karte hochzuladen (und anzuhängen).Trello-Anhang mit falschem Inhaltstyp, wenn der Anhang über die API hochgeladen wurde

Ich mache eine POST https://api.trello.com/1/cards/my-card-id/attachments

Nachrichtentext JSON ist

{ 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. 

, das funktioniert. Die Datei wird hochgeladen und angehängt. Wenn ich die Kartendaten abrufe, sehe ich das in Bezug auf diesen Anhang.

{"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"} 

Sie können sehen, dass mimeType korrekt eingestellt ist. Der Name ist auch korrekt. Die URL verwendet den Dateinamen jedoch nicht wie beim Hochladen von der Benutzeroberfläche aus. Die Datei hat also keine Erweiterung .html.

Wenn ich die Datei herunterzuladen, enthält dieser Header

Content-Type: application/octet-stream 

Es sollte text/html sein. Dadurch lädt der Browser die Datei herunter, statt sie anzuzeigen.

Mache ich etwas falsch? Hat jemand anderes dieses Problem?

Zusätzlich gibt es eine Möglichkeit, Trello den Dateinamen zu verwenden, wenn es die URL erstellt?

Antwort

0

Wenn ich eine Datei oder URL einer Karte Trello befestigen, verwende ich POST mit url nur, wie diese (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); 

Und danach, wenn ich die JSON der Karte zu bekommen, es ist etwas, wie folgt aus:

{"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..."}}, ... 

Sie können über das Hinzufügen .json am Ende der uRL-Karten JSON bekommen. Sie können sehen name ist das gleiche wie url, aber keine mimeType hier. Und es ist nirgends in the documentation gefunden. Wie haben Sie die Kartendaten abgeholt? Wenn Sie JavaScript verwenden, kann der obige Code Ihnen helfen.

Und für die Anpassung der URL der Karten, weiß ich nichts und ich denke, es ist unmöglich.

0

{file: file_contents, 'BuildSheet.html': Dateiname, mime: 'text/html'}

Haben Sie den Schlüssel name mit ausprobiert? reference

Verwandte Themen