14.3.4. /INLINEFILE HTTP Server Pseudo-Directory
This pseudo directory provides a way for a VSP page to have full control over the data sent to the client user-agent, for example to send files to it and to handle the HTTP response attributes.
URIs starting with /INLINEFILE are handled through a VSP procedure instead of being searched for in the HTTP root directory. This special URI has the following syntax:
/INLINEFILE/some_file_name?VSP=some_vsp&arg1=x&arg2=y.....
Upon receipt of such a URI, Virtuoso will execute the "some_vsp"
VSP page with the parameters following the VSP parameter. The VSP page
can adjust the HTTP response header attributes using the
http_header()
function to reflect the content of the
HTTP body, such as specifying the encoding through "Content-Encoding" attribute,
or a MIME type through "Content-Type" attribute).
Example 14.9. Using /INLINEFILE
Here is a simple example for showing JPEG images stored in DAV. The page will list the first ten images found in the DAV resources table as hyper-links. Clicking on them will fetch the content and display using /INLINEFILE.
<?vsp
if ({?'getfile'} <> '')
{
http_header ('Content-type: image/jpg\t\n'); -- set the header to jpg
declare image any;
select RES_CONTENT into image from WS..SYS_DAV_RES
where RES_ID = atoi({?'id'}); -- download image from WebDAV
http(image); -- table and display
return;
}
?>
<html>
<body>
<h1>Using /INLINEFILE to display images from the database</h1>
<table>
<tr>
<td>
<?vsp for (select top 10 RES_ID, RES_NAME from WS..SYS_DAV_RES where right(RES_NAME, 3) = 'jpg') do {?>
<a href="?id=<?=RES_ID?>"><?=RES_NAME?></a><br>
<?vsp } ?>
</td>
<td>
<p><img src="/INLINEFILE/picture.jpg?VSP=<?/http_path()?>&getfile=yes&id=<?={?'id'}?>"></p>
<p><a href="/INLINEFILE/picture.jpg?VSP=<?/http_path()?>&getfile=yes&id=<?/{?'id'}?>">download</a></p>
</td>
</tr>
</table>
</body>
</html>
|
Note: |
|---|---|
|
Note the use of the Also note the call to |
|
See Also: |
|---|---|