Create
cancel
Showing results for 
Search instead for 
Did you mean: 
Sign up Log in

Upload attachments to confluence via rest api

Zhenye Na November 18, 2019

I am able to create / upload an attachment file to our confluence via rest api call scripts below:

 

curl -L -D- -u username:password -X POST -H "X-Atlassian-Token: no-check;" "file=@<path to file>" https://<hostname>/rest/api/content/{page_id}/child/attachment

 

This script works and I found the attachment icon in the confluence page. However the icon is sooo small next to the header and it is hard to find. Since the page I created is for display report to senior engineers and managers who are usually very busy.

Is there are way to make the attachment in the body of the page so that it is easy to find or is there a way to post image / snapshots directly in the body of the page?

 

Thanks! 

3 answers

1 accepted

0 votes
Answer accepted
DPKJ
Community Leader
Community Leader
Community Leaders are connectors, ambassadors, and mentors. On the online community, they serve as thought leaders, product experts, and moderators.
November 18, 2019

@Zhenye NaWelcome to the community!

First of all very nice question. Now, let jump to the possible solutions that can presumably help you resolve your issue,

Solution 1 - Using HTML Macro and Base64 Encode Image

  • Push image directly into confluence page, using structured format of HTML Macro
< ac:structured-macro ac:name = "html" >
   < ac:plain-text-body > <![CDATA[<div><img height="" width="" src="data&colon;image/png;base64,...." />"</div>]]> </ ac:plain-text-body >
</ ac:structured-macro >

Solution 2 - Displaying attachment from source

Zhenye Na November 19, 2019

Followed the solution from https://community.atlassian.com/t5/Confluence-questions/How-to-edit-the-page-content-using-rest-api/qaq-p/904345

 

got json response via a PUT request

 

here is the body section of response

 

"body": {
"storage": {
"value": "<p>Display attachment in body of the page</p>",
"representation": "storage",
"_expandable": {
"content": "/rest/api/content/98797437"
}
},
"_expandable": {
"editor": "",
"view": "",
"export_view": "",
"styled_view": "",
"anonymous_export_view": ""
}
},

 

But the pdf attachment does not display in the page yet, am I missing something ?

 

I ran

PUT /rest/api/content/<PAGEID>?expand=body.storage

With a Payload of:

{
"type":"page",
"title":"TITLE OF PAGE",
"version":{"number":n},
"body":{
"storage":{
"value":"BODY OF PAGE",
"representation":"storage"
}
}
}
DPKJ
Community Leader
Community Leader
Community Leaders are connectors, ambassadors, and mentors. On the online community, they serve as thought leaders, product experts, and moderators.
November 19, 2019

@Zhenye NaI don't think PDF's are displayed inline by default. You can only add link to them.

For PDF Preview, you can try some external plugin from Marketplace, I myself don't use any currently so can't suggest, sorry for that.

Like Zhenye Na likes this
Zhenye Na November 21, 2019

Thanks! at least I know this cannot be done currently. 

Zhenye Na November 21, 2019

Is it possible to display images in the body using rest api? if so, any instructions?

 

Thanks!!!

Zhenye Na November 21, 2019

Resolved

kiran kV November 2, 2020

iof

0 votes
Alok Juneja January 18, 2021

@DPKJ 

Hi DPK. I would really appreciate if you share a working example of Solution 1, that you mentioned above, we are encountering an issue with it, we get error:

Uncaught SyntaxError: Unexpected identifier at Line 10

 

Our code is:

var jsondata = {
"id": "20054524",
"version": {
"number": 19
},
"title": "EnterNewValue",
"type": "page",
"body": {
"storage": {
"value":"<p>Adding image to page</p><ac:structured-macro ac:name = "html">
<ac:plain-text-body>
<![CDATA[<div><img height="720px" width="1512px" src="data&colon;image/png;base64,iVB...." /></div>]]>
</ac:plain-text-body>
</ac:structured-macro>",
"representation": "storage"
}
}
}

DPKJ
Community Leader
Community Leader
Community Leaders are connectors, ambassadors, and mentors. On the online community, they serve as thought leaders, product experts, and moderators.
January 18, 2021

@Alok Juneja I think only mistake you are making it not escaping html sent in value. 

Alok Juneja January 19, 2021

Thanks

0 votes
noorbasha December 18, 2019

Hi 

can you guide me, i am struck to upload a image in confluence with rest api. i don't know how to solve this problem.

Suggest an answer

Log in or Sign up to answer
TAGS
AUG Leaders

Atlassian Community Events