Created by: grokify
PR checklist
-
Read the contribution guidelines. -
Ran the shell script under ./bin/to update Petstore sample so that CIs can verify the change. (For instance, only need to run./bin/{LANG}-petstore.shand./bin/security/{LANG}-petstore.shif updating the {LANG} (e.g. php, ruby, python, etc) code generator or {LANG} client's mustache templates). Windows batch files can be found in.\bin\windows\. -
Filed the PR against the correct branch: master,3.1.x,4.0.x. Default:master. -
Copied the technical committee to review the pull request if your PR is targeting a particular programming language.
@antihax @bvwells
Description of the PR
When a parameter in formData with type file is sent, the parameter name is hardcoded to file but it should be set to the parameter name because it needs to be used in the MIME multipart/form-data Content-Disposition header. As an example, if an API requires the following and the parameter name is set to attachment in the spec, APIClient.prepareRequest will still set name to be hardcoded to file.
Content-Disposition: form-data; name="attachment"; filename="myfile.pdf"
This issue is described in more detail here:
- https://github.com/OpenAPITools/openapi-generator/issues/505
- https://github.com/grokify/go-ringcentral/issues/16
localVarFormFileName was select as the variable name to hold this info because it aligns with localVarFormParams and the name is specifically associated with the file, e.g. localVarFileName and localVarFileBytes. It is also more inline with Go's FormFile in CreateFormFile.
This PR solves the immediate issue of not using the parameter name. A future enhancement will be to support an array of files per parameter and multiple file parameters.