Thread overview
Vibe-D File Question
Sep 11, 2020
Selim Ozel
Sep 11, 2020
Daniel Kozak
Sep 11, 2020
Daniel Kozak
Sep 11, 2020
James Blachly
Sep 12, 2020
Selim Ozel
September 11, 2020
It seems like rejected-software forum is flooded with spam, so I decided to ask it here. Is there a way to generate a file -csv for example- on the back-end and serve it to the front-end as a file.

Serve static file [1] function does this for files saved on the disk. I want to be able to generate a file during runtime and serve it to the client. Is this possible?

Thanks,
S


[1] https://vibed.org/api/vibe.http.fileserver/serveStaticFile


September 11, 2020
On Fri, Sep 11, 2020 at 1:10 PM Selim Ozel via Digitalmars-d-learn < digitalmars-d-learn@puremagic.com> wrote:

> It seems like rejected-software forum is flooded with spam, so I decided to ask it here. Is there a way to generate a file -csv for example- on the back-end and serve it to the front-end as a file.
>
> Serve static file [1] function does this for files saved on the disk. I want to be able to generate a file during runtime and serve it to the client. Is this possible?
>
> Thanks,
> S
>
>
> [1] https://vibed.org/api/vibe.http.fileserver/serveStaticFile
>
>
>
https://vibed.org/api/vibe.http.server/HTTPServerResponse.writeBody


September 11, 2020
On Fri, Sep 11, 2020 at 1:15 PM Daniel Kozak <kozzi11@gmail.com> wrote:

> On Fri, Sep 11, 2020 at 1:10 PM Selim Ozel via Digitalmars-d-learn < digitalmars-d-learn@puremagic.com> wrote:
>
>> It seems like rejected-software forum is flooded with spam, so I decided to ask it here. Is there a way to generate a file -csv for example- on the back-end and serve it to the front-end as a file.
>>
>> Serve static file [1] function does this for files saved on the disk. I want to be able to generate a file during runtime and serve it to the client. Is this possible?
>>
>> Thanks,
>> S
>>
>>
>> [1] https://vibed.org/api/vibe.http.fileserver/serveStaticFile
>>
>>
>>
> https://vibed.org/api/vibe.http.server/HTTPServerResponse.writeBody
>

import vibe.core.core;
import vibe.http.server;


void main()
{
runWorkerTaskDist(&wrap);
    runApplication();
}

void wrap()
{
auto settings = new HTTPServerSettings(":8080");
settings.options |= HTTPServerOption.reusePort;
listenHTTP(settings, &fun);
}

void fun(HTTPServerRequest req, HTTPServerResponse res) nothrow
{
try
{
res.headers["Content-Disposition"] = "filename=\"muj.csv\"";
res.writeBody("some;csv;data", "text/csv");
}
catch (Exception e)
{}
}


September 11, 2020
On 9/11/20 7:28 AM, Daniel Kozak wrote:
> void fun(HTTPServerRequest req, HTTPServerResponse res) nothrow
> {
> try
> {
> res.headers["Content-Disposition"] = "filename=\"muj.csv\"";
> res.writeBody("some;csv;data", "text/csv");
> }
> catch (Exception e)
> {}
> }

Selim, note the Content-Disposition header in particular.

https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Disposition
September 12, 2020
On Friday, 11 September 2020 at 13:03:16 UTC, James Blachly wrote:
> On 9/11/20 7:28 AM, Daniel Kozak wrote:
>> void fun(HTTPServerRequest req, HTTPServerResponse res) nothrow
>> {
>> try
>> {
>> res.headers["Content-Disposition"] = "filename=\"muj.csv\"";
>> res.writeBody("some;csv;data", "text/csv");
>> }
>> catch (Exception e)
>> {}
>> }
>
> Selim, note the Content-Disposition header in particular.
>
> https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Disposition

Thank you Daniel and James! The example works. It's exactly what I was asking for. I got the core idea with the Content Disposition article.