Uploaded image for project: 'Tapestry 5'
  1. Tapestry 5
  2. TAP5-1118

Using Ajax updates to add an Upload component to an existing Form fails in IE, which still sends application/x-www-form-urlencoded encoded request

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Fixed
    • 5.1.0.5
    • 5.2.1
    • tapestry-upload
    • None

    Description

      When injecting an upload component via form injector, it tries to set the enctype of the form to "multipart/form-data". This works ok on most browsers, but as expected, IE doesn't like it... IE still sends the POST request as "application/x-www-form-urlencoded".

      Nevertheless, there is a workaround (http://www.bennadel.com/blog/1273-Setting-Form-EncType-Dynamically-To-Multipart-Form-Data-In-IE-Internet-Explorer-.htm) that is to set not only the enctype but also the encoding of the form, which IE uses when submiting the form.

      In practice, it only requires to change upload.js to something like this:

      Tapestry.Initializer.injectedUpload = function(element)
      {
      var form = $(element).form;
      form.enctype = "multipart/form-data";
      form.encoding = "multipart/form-data";
      }

      Attachments

        Activity

          People

            hlship Howard Lewis Ship
            raulmt Raul Montes
            Votes:
            1 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: