diff options
author | Benjamin Barenblat <bbaren@mit.edu> | 2018-06-17 09:12:52 -0400 |
---|---|---|
committer | Benjamin Barenblat <bbaren@mit.edu> | 2018-06-17 09:12:52 -0400 |
commit | 095c2640aa2070ed4e2765875238d5e6e6673856 (patch) | |
tree | 9306beb3fef29a99d9436dc00e2d8c57fb3e0c7b /tests/dbuploadOpt.ur | |
parent | 8c58ba2e1db6e97ca1f18fd9ca52ffead53e4a4f (diff) | |
parent | 34eb9eba9a724433f9c37c39cf43e9e10cf55220 (diff) |
Merge branch 'upstream' into dfsg_clean20180616+dfsg
Diffstat (limited to 'tests/dbuploadOpt.ur')
-rw-r--r-- | tests/dbuploadOpt.ur | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/tests/dbuploadOpt.ur b/tests/dbuploadOpt.ur new file mode 100644 index 00000000..466b49f3 --- /dev/null +++ b/tests/dbuploadOpt.ur @@ -0,0 +1,27 @@ +table t : { Id : int, Blob : option blob, MimeType : string } +sequence s + +fun getImage id : transaction page = + r <- oneRow1 (SELECT t.Blob, t.MimeType + FROM t + WHERE t.Id = {[id]}); + case r.Blob of + None => error <xml>Oh no!</xml> + | Some blob => returnBlob blob (blessMime r.MimeType) + +fun main () : transaction page = + let + fun handle r = + id <- nextval s; + dml (INSERT INTO t (Id, Blob, MimeType) + VALUES ({[id]}, {[if fileMimeType r.File = "image/jpeg" then Some (fileData r.File) else None]}, {[fileMimeType r.File]})); + main () + in + x <- queryX1 (SELECT t.Id FROM t) + (fn r => <xml><img src={url (getImage r.Id)}/><br/></xml>); + return <xml><body> + <form><upload{#File}/> <submit action={handle}/></form> + <hr/> + {x} + </body></xml> + end |