comparison tests/blob.ur @ 1471:67ebd30a2283

Keep user-set response headers on indirect returns
author Adam Chlipala <adam@chlipala.net>
date Sun, 12 Jun 2011 17:44:34 -0400
parents 034eeb099564
children
comparison
equal deleted inserted replaced
1470:5018878ca645 1471:67ebd30a2283
1 sequence s 1 fun main () =
2 table t : { Id : int, Nam : option string, Data : blob, Desc : string, Typ : string } 2 setHeader (blessResponseHeader "X-Test") "Test";
3 return <xml><body>Test</body></xml>
3 4
4 fun see id = 5 fun bad () =
5 r <- oneRow (SELECT t.Data, t.Typ FROM t WHERE t.Id = {[id]}); 6 setHeader (blessResponseHeader "X-Test") "Test";
6 returnBlob r.T.Data (blessMime r.T.Typ) 7 returnBlob (textBlob "hello") (blessMime "text/plain")
7
8 fun save r =
9 id <- nextval s;
10 dml (INSERT INTO t (Id, Nam, Data, Desc, Typ)
11 VALUES ({[id]}, {[fileName r.Data]}, {[fileData r.Data]}, {[r.Desc]}, {[fileMimeType r.Data]}));
12 main ()
13
14 and main () =
15 ls <- queryX (SELECT t.Id, t.Desc, octet_length(t.Data) AS Len FROM t ORDER BY t.Desc)
16 (fn r => <xml><li><a link={see r.T.Id}>{[r.T.Desc]} ({[r.Len]})</a></li></xml>);
17 return <xml><body>
18 {ls}
19
20 <br/>
21
22 <form>
23 <textbox{#Desc}/>
24 <upload{#Data}/>
25 <submit action={save}/>
26 </form>
27 </body></xml>