Skip to main content
NICE CXone Expert
Expert Success Center

files/{fileid}/{filename} (PUT)

Overview

Replace an existing attachment with a new version

  • REST Method: PUT
  • Method Access: public

Uri Parameters

Name Type Description
filename string Double uri-encoded file name. Should be prefixed with "=" if it does not have an extension.
pageid string either an integer page ID, "home", or "=" followed by a double uri-encoded page title

Query Parameters

Name Type Description
redirects int? If zero, do not follow page redirects.
description string? file attachment description
authenticate bool? Force authentication for request (default: false)

Return Codes

Name Value Description
OK 200 The request completed successfully
Bad Request 400 Invalid input parameter or request body
Forbidden 403 Update access to the page is required
Not Found 404 Requested page could not be found

Message Format

Output:

<file id="{id}" revision="{int}" href="{uri}">
  <filename>{text}</filename>
  <description>{text}</description>
  <contents type="{MIME}" size="{int}" href="{uri}"/>
  <date.created>{date}</date.created>
  <user.createdby id="{int}" href="{uri}">
    <nick>{text}</nick>
    <username>{text}</username>
    <fullname>{text}</fullname>
    <email>{text}</email>
    <hash.email>{hash}</hash.email>
    <uri.gravatar>{uri}</uri.gravatar>
  </user.createdby>
  <revisions count="{int}" totalcount="{int}" href="{uri}"/>
  <page.parent id="{int}" href="{uri}">
    <uri.ui>{uri}</uri.ui>
    <title>{text}</title>
    <path>{text}</path>
    <namespace>{namespace}</namespace>
  </page.parent>
  <properties/>
</file>

Implementation Notes

This feature works in exactly same way PUT:/files/{fileid} does. A doubly encoded filename can be appended to the end of the path to designate the desired filename on the Expert filesystem.

Curl Sample: Update a File

The following command updates a file (file ID = 1) with the file "foo". The stored file name will be "bar".

Sample Code

curl -u username:password -H "Content-Type: xxx" -T foo -i http://192.168.59.128/@api/deki/files/1/=bar

Implementation notes 

curl flags

-u
Basic HTTP authentication. Sends a username and password to server so it can verify whether a user is of privilege to perform specific operation.
-T
Sends a file using the PUT command.
-H
Adds a header or modifies an existing one. This is used to modify the "Content-Type" HTTP request header. Remember to set it to the appropriate MIME according to the file uploaded (for example image/jpg for a jpeg image).
-i
Includes the HTTP response header in the output. Useful for debugging.

MIMEs

It's important to specify a MIME type in the "Content-Type" header for the server to process the file correctly.

Example

We at Expert love playing pranks on each other. So we are going to update an existing image to one that which will most likely annoy a user. The following demonstrates how to change a file (file ID = 71) to an image, "troll.jpg". The image will be named "trollface.jpg" in the Mindtouch directory.

Sample Code

curl -u admin:password -H "Content-Type: image/jpg" -T trollface.jpg -i http://192.168.59.128/@api/deki/files/71/=trollface.jpg

HTTP Response Headers

HTTP/1.1 200 OK
Date: Thu, 21 Jan 2010 22:49:11 GMT
Server: Dream-HTTPAPI/2.0.0.17629 Microsoft-HTTPAPI/2.0
Content-Length: 2022
Content-Type: application/xml; charset=utf-8
X-Data-Stats: request-time-ms=1919; mysql-queries=21; mysql-time-ms=143;
X-Deki-Site: id="default"
Via: 1.1 dekiwiki

HTTP Response Body

Content-Type: application/xml

<?xml version="1.0"?>
<file id="71" revision="5" href="http://192.168.59.128/@api/deki/files/71/info">
  <filename>trollface.jpg</filename>
  <description/>
  <contents type="image/jpg" size="88820" width="469" height="428" href="http://192.168.59.128/@api/deki/files/71/=trollface.jpg"/>
  <contents.preview rel="thumb" type="image/jpeg" maxwidth="160" maxheight="160" href="http://192.168.59.128/@api/deki/files/71/=trollface.jpg?size=thumb"/>
  <contents.preview rel="webview" type="image/jpeg" maxwidth="550" maxheight="550" href="http://192.168.59.128/@api/deki/files/71/=trollface.jpg?size=webview"/>
  <date.created>2010-01-21T22:49:09Z</date.created>
  <user.createdby id="1" href="http://192.168.59.128/@api/deki/users/1">
    <nick>Admin</nick>
    <username>Admin</username>
    <email>admin@admin.com</email>
    <hash.email>64e1b8d34f425d19e1ee2ea7236d3028</hash.email>
    <uri.gravatar>http://www.gravatar.com/avatar/64e1b8d34f425d19e1ee2ea7236d3028</uri.gravatar>
  </user.createdby>
  <revisions count="5" totalcount="5" href="http://192.168.59.128/@api/deki/files/71/revisions"/>
  <page.parent id="567" href="http://192.168.59.128/@api/deki/pages/567?redirects=0">
    <uri.ui>http://192.168.59.128/FUBAR</uri.ui>
    <title>FUBAR</title>
    <path>FUBAR</path>
    <namespace>main</namespace>
  </page.parent>
  <properties count="1" href="http://192.168.59.128/@api/ deki/files/71/properties">
    <property name="iscopyright" href="http://192.168.59.128/@api/deki/files/71/properties/iscopyright/info" etag="106.r2_ts2010-01-21T19:54:52Z">
      <contents type="text/plain" size="3" href="http://192.168.59.128/@api/deki/files/71/properties/iscopyright">yes</contents>
      <date.modified>2010-01-21T19:54:52Z</date.modified>
      <user.modified id="1" href="http://192.168.59.128/@api/deki/users/1">
        <nick>Admin</nick>
        <username>Admin</username>
        <email>admin@admin.com</email>
        <hash.email>64e1b8d34f425d19e1ee2ea7236d3028</hash.email>
        <uri.gravatar>http://www.gravatar.com/avatar/64e1b8d34f425d19e1ee2ea7236d3028</uri.gravatar>
      </user.modified>
      <change-description/>
    </property>
  </properties>
</file>
  • Was this article helpful?