Comments (4)
I thought about that, but I like the consistency of being able to extract parameter values in exactly the same way whether they are passed using multipart/form-data
or application/x-www-form-urlencoded
. If you do know that it's a multipart parameter, then you have two main options: extract them like you do using files[]
syntax or extract them using { "multipart", test = function(multipart) end }
. This makes it more explicit and still gives you access to everything you need (but only when the multipart parameters are indeed present).
I also thought about always returning a table, but making it behave as a string to handle these cases, but it's not possible to do it properly in many cases and requires overwriting __len, __concat, __tostring and some other metamethods and still leaves some wholes (for example, you can's use the comparison: file == "123"
when file
is a table and there is nothing I can do about it). To work properly it would require always using tostring
on those parameters, which in my opinion is too much for the developer to do.
from fullmoon.
Thanks for the explaination.
{ "multipart", test = function(multipart) end }
This is the part I was missing. I didn't see that you can use "multipart"
that way.
from fullmoon.
Thanks @johnmuhl; it's good to hear that this option works for you. Would you expect it to be covered in the validation section? I do describe multipart
pseudo-parameter in the section on multipart parameters, but I think it may benefit from adding a sentence or two about validation there.
from fullmoon.
After you mentioned it I went back to the form validation section to see if I had missed it so a note there would have helped me.
from fullmoon.
Related Issues (20)
- hand over route back to the redbean core if no matching fullmoon route HOT 3
- Uncertain how to obtain query parameters HOT 6
- Any CRUD example for using SQLite? HOT 2
- Any help with DNS/virtual hosting/ip address? HOT 3
- Support for multipart/form-data to allow uploading files HOT 10
- serveRedirect parameter order HOT 1
- [Suggestion] Disable Listing HOT 4
- [Suggestion] Built-in DDOS Protection HOT 3
- Processing layouts HOT 6
- using booleans in oneof rules HOT 2
- In the instructions: "curl -o redbean.com https://justine.lol/redbean/redbean-latest.com" does not work HOT 3
- makeStorage support for in memory database HOT 4
- Does setTemplate support fmg table in lua code directly HOT 9
- Provide DB synchronization HOT 1
- Usage of makeStorage in requests HOT 16
- [Feature Request] To add automatic letsencrypt DNS-01 challenge just like caddy web server HOT 4
- [Feature Request] CSRF protection HOT 2
- Custom template engines? HOT 4
- Getting the body of the request HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from fullmoon.