Forum Discussion

jarbo's avatar
16 years ago

SoapUI missing filename attribute in posted multipart/form-data

I have created an http request that will upload a file as multipart/form-data. I create the http request, add the attachment and set its name, content-type and set the cached flag "on". My HTTP Method is 'POST' and my Media type is multipart/form-data. When I submit, the data that is submitted is missing the filename property from the 'part' that represents the file data. I can find no way to set this property. Below is the data that gets transmitted:

------=_Part_30_5087860.1265397605826
Content-Type: text/plain; charset=Cp1252
Content-Transfer-Encoding: binary
Content-Disposition: form-data; name="file"



Note the missing filename attribute. When I do the same thing using fiddler, I get this:

-----------------------------7da1b512181c9a
Content-Disposition: form-data; name="file"; filename="C:\pubfilebook.txt"
Content-Type: text/plain



This appears to be a bug or incomplete feature. Here is the HTML4.0 spec and the relevant section regarding file uploads: http://www.w3.org/TR/html4/interact/for ... -17.13.4.2

The user agent should attempt to supply a file name for each submitted file. The file name may be specified with the "filename" parameter of the 'Content-Disposition: form-data' header, or, in the case of multiple files, in a 'Content-Disposition: file' header of the subpart.

Any help would be appreciated!

Thanks,
-jay
  • aldana's avatar
    aldana
    Occasional Contributor
    I got the same problem

    Indeed the filename is missing. That is the only difference between soapui and doing a 'curl -F @file=bla.jpg ....'.

    This follows that my REST service cannot consume the payload. To me this seems to be a blocker bug... I cannot use the multipart feature at all.

    Does somebody know a workaround? Maybe use the internal soapui http-client and build together the request manually.
  • zarana's avatar
    zarana
    Occasional Contributor
    I also encounter same issue. Do anyone have any solution ?