Skip to main content

files/{fileid} (PUT) (MT4)


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


<file id="{id}" revision="{int}" href="{uri}">
  <contents type="{MIME}" size="{int}" href="{uri}"/>
  <user.createdby id="{int}" href="{uri}">
  <revisions count="{int}" totalcount="{int}" href="{uri}"/>
  <page.parent id="{int}" href="{uri}">

Implementation Notes

Replaces an existing file.

Curl Sample: Replace a File

The following command can be used to replace an existing file. In this case, a file with file ID = 1 is replaced by image foo.jpg. Note that the file does not have to be an image. Also, a file with file ID = 1 must exist for the operation to succeed.

Sample Code

curl -u username:password -H "Content-Type: image/jpg" -T foo.jpg -i

Implementation notes 

curl flags

Basic HTTP authentication. Sends a username and password to server so it can verify whether a user is of privilege to perform specific operation.
Sends a file using the PUT command.
Includes the HTTP response header in the output. Useful for debugging.


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



A user uploaded a copyright image (File ID = 9). The use of such image has brought on the heat of the digital police. Instead of removing it, we will replace it with the copyright sign.



Sample Code

curl -u username:password -H "Content-Type: image/png" -T copyright.png -i

HTTP Response Headers

HTTP/1.1 200 OK
Date: Tue, 12 Jan 2010 19:11:40 GMT
Server: Dream-HTTPAPI/
X-Deki-Site: id="default"
Content-Type: application/xml; charset=utf-8
Content-Length: 2790
Via: 1.1 dekiwiki

HTTP Response Body

Content-Type: application/xml

<?xml version="1.0"?>
<file id="9" href="">
  <description>image 9</description>
  <contents type="image/png" size="12557" width="1691" height="2343" href=""/>
  <contents.preview rel="thumb" type="image/png" maxwidth="160" maxheight="160" href=""/>
  <contents.preview rel="webview" type="image/png" maxwidth="550" maxheight="550" href=""/>
  <user.createdby id="1" href="">
  <revisions count="5" totalcount="5" href=""/>
  <page.parent id="51" href="">
    <title>Jean Luc Picard</title>
  <properties count="2" href="">
    <property name="" href="" etag="29.r2_ts2010-01-11T20:42:40Z">
      <contents type="text/plain; charset=utf-8" size="7" href="">image 9</contents>
      <user.modified id="1" href="">
    <property name="iscopyright" href="" etag="34.r1_ts2010-01-12T00:41:49Z">
      <contents type="text/plain" size="2" href="">no</contents>
      <user.modified id="1" href="">
  • Was this article helpful?