Well this is just odd.
When Firefox, Chrome and IE6 submit files-to-upload, the structure returned
by $c->req->uploads is DIFFERENT for explorer -- it's an ARRAYREF instead of
a HASHREF:
DB<2> x $c->req->uploads
*0 HASH(0x9d04d20)*
'*newatt[1]*' => Catalyst::Request::Upload=HASH(0xb81a098)
'filename' => 'japh.pl'
'headers' => HTTP::Headers=HASH(0xb448c28)
'content-disposition' => 'form-data; name="newatt[1]"; filename="
japh.pl"'
'content-type' => 'text/x-perl-script'
'size' => 104
'tempname' => '/tmp/6V0Vlas5td'
'type' => 'text/x-perl-script'
'*newatt[2]*' => Catalyst::Request::Upload=HASH(0xb448c88)
'filename' => 'TODO'
'headers' => HTTP::Headers=HASH(0xb650140)
'content-disposition' => 'form-data; name="newatt[3]";
filename="TODO"'
'content-type' => 'application/octet-stream'
'size' => 29
'tempname' => '/tmp/2RTgotIgut'
'type' => 'application/octet-stream'
The same attempted upload for Explorer 8 looks like this instead:
*0 ARRAY(0xab06360)*
* 0* Catalyst::Request::Upload=HASH(0xb448c88)
'filename' => 'japh.pl'
'headers' => HTTP::Headers=HASH(0xb81a098)
'content-disposition' => 'form-data; name="newatt[1]"; filename="
japh.pl"'
'content-type' => 'text/x-perl-script'
'size' => 104
'tempname' => '/tmp/3Tg94Iq85j'
'type' => 'text/x-perl-script'
*1* Catalyst::Request::Upload=HASH(0xb448c28)
'filename' => 'TODO'
'headers' => HTTP::Headers=HASH(0xb448c88)
'content-disposition' => 'form-data; name="newatt[3]";
filename="TODO"'
'content-type' => 'application/octet-stream'
'size' => 29
'tempname' => '/tmp/T2r9F7Ex11'
'type' => 'application/octet-stream'
The structure of each node is the same, but as a whole the upload-list
switches internally from a HASHREF to an ARRAYREF. IE6, FireFox, Chrome all
bring in the Hashref, but IE8 brings in an Arrayref.
On top of that, if there's just one upload, it's not even an array, it's
just the node itself.
What the heck? Sure seems odd to offer a different storage structure based
on browser-platform...
On Wed, Oct 6, 2010 at 8:27 AM, will trillich
<[email protected]>wrote:
> The FormBuilder/Catalyst -generated HTML works just fine in Chrome and in
> Firefox, so debugging there isn't useful. It also works fine in older
> Internet Explorers. :( I was hoping someone has already run into this
> FormBuilder-snag-with-IE8 and found an elegant fix...
>
> And the "return validate_incident(this)" code is generated via
> FormBuilder, that's why I was asking the list, hoping someone else here has
> run into this and found a workaround.
>
> We do have other DHTML javascript on the page (e.g. click to dynamically
> add another upload-field) so Javascript and JQuery are working. IE8 has
> apparently been tweaked enough that it doesn't recognize the object in that
> context...?
>
> Any ideas?
>
>
> On Wed, Oct 6, 2010 at 1:13 AM, Toby Corkindale <
> [email protected]> wrote:
>
>> On 06/10/10 14:00, will trillich wrote:
>>
>>> Short version: Catalyst/Formbuilder uploads work fine in firefox and
>>> chrome, works fine in IE 6... but not IE 8, where it throws an "object
>>> expected" error.
>>>
>>
>> Ugh, I hit this a little while ago, but have forgotten the details
>> already.
>> I think you are looking in the right direction with the "this" though; try
>> validating it in your function to ensure it contains what you're expecting
>> perhaps?
>>
>> Also, can you verify that jquery is actually getting loaded OK?
>>
>> ie. In your document, put something like:
>> $(function() { alert("jquery has loaded!"); });
>>
>> and check to see that you get an alert box when you load the page. If not,
>> fire up Chrome's developer tools, or Firefox's Firebug, and see they mention
>> any warnings or errors.
>>
>> -Toby
>>
>> _______________________________________________
>> List: [email protected]
>> Listinfo: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst
>> Searchable archive:
>> http://www.mail-archive.com/[email protected]/
>> Dev site: http://dev.catalyst.perl.org/
>>
>
>
_______________________________________________
List: [email protected]
Listinfo: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst
Searchable archive: http://www.mail-archive.com/[email protected]/
Dev site: http://dev.catalyst.perl.org/