With MVC, we have a controller
GetImage that expects an object identity and an attribute with a Blob, like this: http://localhost:5052/Turnkey/GetImage?img=9!10-SomeImage
You may append yet another section with
'-' that denotes a content-type header to send to the browser:
http://localhost:5052/Turnkey/GetImage?img=9!10-SomeImage-application%2Fpdf will use application/pdf as the content type.
NEW: Starting from 2023-08-31 yet another parameter with '-' (forth) will set the content-disposition filename.
This controller may be used by Angular views as well if you want to construct a link to download a file or something without actually having the attribute loaded (if it is marked as delayed fetch).
Now you can return Text content this way too.
For security concerns, use the
AllowMVCAccess tagged value on the attribute. This is the default "ok" for byte (to be backward compatible) and the default "notok" for strings - you can also set "okwhenauthenticated". No accessgroup evaluation is provided for GetImage.
See also The_ExternalId_explained to create a more long-lived link.