Bonjour à tous,
Je rencontre actuellement un problème avec un formulaire sous IE. Ledit formulaire doit pouvoir gérer un champs de type "file". Voici le code généré :
Comme vous pouvez le constater, l'attribut enctype est bien précisé.
Lorsque j'envoie le contenu du formulaire sous FF, aucun problème.
Lorsque j'envoie le contenu du formulaire sous IE, j'obtiens une erreur : "Internet Explorer cannot display the webpage". De plus, rien dans les logs de mon application, la requête n'est donc tout simplement pas envoyée.
Lorsque j'envoie le contenu de mon formulaire sous IE, sans l'attribut "enctype", le formulaire est bien traité - à l'exception bien sur du fichier joint.
J'ai bien entendu chercher un peu partout, j'ai trouvé quelques pistes, notamment sur StackOverflow, mais rien ne m'a permis de solutionner mon problème.
Merci d'avance,
Pour info, le lien vers mon post sur StackOverflow mentionnant les solutions déjà testées : http://stackoverflow.com/questions/7929629/ie-doesnt-handle-multipart-forms
EDIT:
Note : l'utilisation d'un <button> à la place d'un <input type=submit"> est une restriction due au design, j'ai bien entendu essayé de le remplacer, sans succès.
Note 2: l'application utilise massivement jQuery, notamment pour le traitement des formulaires, rien à signaler non plus de ce coté, la désactivation totale du Javascript n'a pas solutionné le problème.
Modifié par AkyRhO (28 Oct 2011 - 16:41)
Je rencontre actuellement un problème avec un formulaire sous IE. Ledit formulaire doit pouvoir gérer un champs de type "file". Voici le code généré :
<form accept-charset="UTF-8" action="/users/update" class="edit_user" data-ajax="false" enctype="multipart/form-data" id="edit_user_30" method="post"><div style="margin:0;padding:0;display:inline"><input name="utf8" type="hidden" value="✓" /><input name="_method" type="hidden" value="put" /><input name="authenticity_token" type="hidden" value="M2Tj0j4iMLz890lwNmqNTYXgogxcPoGb+Yof62hmLI0=" /></div>
<fieldset>
<label class="form-title">Préférences</label>
<section>
<label for="user_color">Couleur</label>
<div>
<input class="color" id="user_color" name="user[color]" size="30" type="text" value="#00ff15" />
</div>
</section>
<section>
<label>
Mon avatar <br><span>Max.: 2Mo</span>
<span id="avatar"><img alt="Roméo" class="avatar" src="/uploads/user/avatar/30/fancy_201005-29-notre-dame.jpg?1319809961" style="border-color: #00ff15; border-width: 3px;" title="Roméo" /></span>
</label>
<div>
<input id="user_avatar" name="user[avatar]" type="file" />
</div>
</section>
<section>
<div>
<button class="submit">Mettre mes informations à jour</button>
</div>
</section>
</fieldset>
</form>
Comme vous pouvez le constater, l'attribut enctype est bien précisé.
Lorsque j'envoie le contenu du formulaire sous FF, aucun problème.
Lorsque j'envoie le contenu du formulaire sous IE, j'obtiens une erreur : "Internet Explorer cannot display the webpage". De plus, rien dans les logs de mon application, la requête n'est donc tout simplement pas envoyée.
Lorsque j'envoie le contenu de mon formulaire sous IE, sans l'attribut "enctype", le formulaire est bien traité - à l'exception bien sur du fichier joint.
J'ai bien entendu chercher un peu partout, j'ai trouvé quelques pistes, notamment sur StackOverflow, mais rien ne m'a permis de solutionner mon problème.
Merci d'avance,
Pour info, le lien vers mon post sur StackOverflow mentionnant les solutions déjà testées : http://stackoverflow.com/questions/7929629/ie-doesnt-handle-multipart-forms
EDIT:
Note : l'utilisation d'un <button> à la place d'un <input type=submit"> est une restriction due au design, j'ai bien entendu essayé de le remplacer, sans succès.
Note 2: l'application utilise massivement jQuery, notamment pour le traitement des formulaires, rien à signaler non plus de ce coté, la désactivation totale du Javascript n'a pas solutionné le problème.
Modifié par AkyRhO (28 Oct 2011 - 16:41)