vibe.d: How to get the conent of a file upload ?
aberba
karabutaworld at gmail.com
Thu Sep 17 20:38:47 UTC 2020
On Thursday, 17 September 2020 at 16:32:55 UTC, WebFreak001 wrote:
> On Thursday, 17 September 2020 at 16:00:33 UTC, wjoe wrote:
>> I found this [1] but unfortunately the post this refers to is
>> a dead link and the content, unfortunately, didn't tell me
>> anything that I didn't already find in the docs.
>>
>> What I can get from the form is the form fields with content,
>> the field name for the file upload and the file name. But the
>> file name is useless to me because I need the file content.
>>
>> Where is it stored ?
>>
>> [1] https://aberba.com/2017/multiple-file-upload-in-vibe-d/
>
> hi, you can access HTTPServerRequest.files which contains the
> uploaded file.
>
> Example in real code:
> https://github.com/WebFreak001/ImageUploader/blob/master/source/app.d#L141-L159
>
> Documentation: https://vibed.org/api/vibe.inet.webform/FilePart
>
> Note: the file is only downloaded from the client / stored on
> disk once you access the files or the form property, though
> this isn't documented.
>
> I don't believe the temp file behavior is customizable as it is
> hardcoded here to write to a temporary file (which is called on
> form parsing):
> https://github.com/vibe-d/vibe.d/blob/ebebfa827f568cc9bced4bec2b66edc043a8adf7/inet/vibe/inet/webform.d#L311
>
> However if you really wanted to (but I'd advise against it) you
> could parse the form data from the HTTPServerRequest.bodyReader
> yourself
Yeah I think what he wants is a way to write the file into an
in-memory buffer. This is especially necessary it some
environments where you can write to disk at all.
How that's done, even in node.js is to use a middleware for
parsing library to parse the headers in such way. I often use
multer (which is also based on busybody) to do that in nodejs.
Unfortunately I haven't used D to that extent to need such a
thing... I in never hit that problem.
I wonder if using a psuedo file handler will work for the
in-memory buffer thing.
More information about the Digitalmars-d-learn
mailing list