The framework provides one MultipartResolver File parts which can't be stored in memory will be stored on disk in temporary files. It's now easier to add more fields, including the radio button as @user6573234 requested. Secondly, my answer which uses file= only worked for me Approach: In this example, we are creating a simple HTML form (uploading.html) for uploading an image file to the server. You can use angular/.net code to access this method ; Saves the files to the local file system using a file name generated by the app. You can use both of them. For example, a multipart MIME message using the digest subtype would have its Content-Type set as "multipart/digest". I know this is old, but it's the first example of saving form data to a txt file I found in a quick search. The format of a multipart MIME message is easiest to understand by looking at an example request: If an api request will be submitted via form-data (from Postman) then use @RequestParam. If the page uses HTTP, you can use the JMeter Proxy to capture the login sequence. For normal logins (i.e. It is 2019 and there's a better way to do this: const form = document.querySelector('form'); const data = new URLSearchParams(new FormData(form).entries()); I want to upload SQLite database via PHP web service using HTTP POST request with MIME type multipart/form-data & a string data called "userid=SOME_ID". ReadForm parses an entire multipart message whose parts have a Content-Disposition of "form-data". You will need to encode your data as multipart/form-data instead of json. Uses Path.GetTempFileName to return a full path for a file, including the file name. Here is an example of a ASP.NET Core supports uploading one or more files using buffered model binding for smaller files and unbuffered streaming for larger files. @RequestPart: This annotation associates a part of a multipart request with the method argument, which is useful for sending complex multi-attribute data as payload, e.g., JSON or XML.. To quote MDN on FormData (emphasis mine):. For example, B may be receiving requests from many clients other than A, and/or forwarding For sending api requests via JSON or some programming language, @ResponseBody annotation should be used. It stores up to maxMemory bytes + 10MB (reserved for non-file parts) in memory. You had to set the Content-type like this "Content-Type": Render an HTML template with a