vibe.d: How to get the conent of a file upload ?

Adam D. Ruppe destructionator at gmail.com
Sun Sep 20 00:36:30 UTC 2020


On Saturday, 19 September 2020 at 20:17:06 UTC, aberba wrote:
> Arsd cgi.d might be what you want if you want to it your way as 
> its more low-level interface-wise.

Eh, it depends. My lib lets you do as much or as little as you 
want.

About ten years ago, I wrote a framework on top that 
automatically generates javascript/json interfaces as well as 
html form and output UI just given an ordinary D class. Had full 
interop with PHP too... all with no UDAs since they didn't exist 
yet!

I never really documented how to use it. Wrote a few examples on 
the forum but nothing formal. I kinda regret that; I've *still* 
never seen anyone else, anywhere, automate as much as it did.

old demo I posted in May 2011: 
http://arsdnet.net/cgi-bin/apidemo/javascript

I can't find the source to that anymore but it would be something 
like:

---
import arsd.web;

class CoolApi : WebApi {
    enum Color { red, green, etc }
    struct Person { int id; string first; string last; }

    Element getABox(Color c) {
          auto div = Element.make("div");
          div.style.color = to!string(c);
          return div;
    }

    int addSomeNumbers(int a, int b) { return a + b; }

    Person[] getPeople(int startingId) { return [Person(...)]; }
}
mixin FancyMain!CoolApi;
---

That's it - all the html and javascript are all auto-generated.


Nowadays I'm merging all those ideas into cgi.d and actually 
writing about it in my blog. There's a lot in my old 
implementation I didn't like but now that D's reflection is 
better than it was, I have techniques to make it even better.

My new dwidder website is the only public example of the new code 
so far 
https://github.com/adamdruppe/dupdates/blob/master/main.d#L157

Still a bunch more I'm slowly bringing together. D has unique 
strengths for web that javascript, ruby, and python can just 
*never* do and we should be pushing the edges to go as cool as we 
can.



More information about the Digitalmars-d-learn mailing list