Overview

public. Retrieve file attachment content

Uri Parameters
NameTypeDescription
filenamestring"=" followed by a double uri-encoded file name
pageidstringeither an integer page ID, "home", or "=" followed by a double uri-encoded page title
Query Parameters
NameTypeDescription
authenticatebool?Force authentication for request (default: false)
format{jpg, png, bmp, gif}?Convert output to given type. Default is to use original type.
heightint?Height of the image
ratio{fixed, var}?Fixed preserves aspect ratio by applying height and width as bounding maximums rather than absolute values. Variable will use the width and height given. Default: fixed
redirectsint?If zero, do not follow page redirects (only applies when {pageid} is present).
revisionstring?File revision to retrieve. 'head' by default will retrieve latest revision. positive integer will retrieve specific revision
size{original, thumb, webview, bestfit, custom}?Return a resized image from one of the preset cached sizes. Use 'thumb' or 'webview' to return a smaller scaled image. Use 'bestfit' along with height/width to return one of the known sizes being at least the size given. Default: original
widthint?Width of the image
Return Codes
NameValueDescription
BadRequest400Invalid input parameter or request body
Forbidden403Read access to the page is required
NotFound404Requested file could not be found
NotImplemented501Requested operation is not currently supported
Ok200The request completed successfully

Message Format

None

Implementation Notes

Use of the format, ratio, width/height, and size parameters requires the file to be an image.

The Content-Disposition, Content-Length, and Content-Type headers provide information about the retrieved file.

Code Samples

The following code example retrieves the file called "myfile.jpg" from the home page using a best fit of 100x100.  The result is saved in the caller's temporary directory:

Plug p = Plug.New("http://deki-hayes/@api/deki");
p.At("users", "authenticate").WithCredentials("admin", "password").Get();
DreamMessage msg = p.At("pages", "home", "files", "=myfile%252ejpg").With("size", "bestfit").With("width", 100).With("height", 100).Get();
using (FileStream fs = System.IO.File.OpenWrite(Path.GetTempPath() + msg.ContentDisposition.FileName)) {
    byte[] fileData = msg.AsBytes();
    fs.Write(fileData, 0, fileData.Length);
}
Tag page
You must login to post a comment.