Bonjour,
Je reviens sur ce post ( ah les joies du multi-taches
) pour baliser mon upload de fichiers.
Donc, je parviens à sélectionner un fichier local ( Question : FileInput ne possède pas de filtre sur les extensions : *.PNG, *.JPEG ? ); ensuite je le récupère sur le serveur grace à la fonction d'envoi de formulaire :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| function envoiFormulaire(){
var nomfichier = filevis.inputNode.value;
alert( 'Nom du fichier : ' + nomfichier);
dojo.io.iframe.send({
url: "loader",
method: "post",
handleAs: "text",
form: dojo.byId('formulaire1'),
handle: function(data,ioArgs){
var retour = dojo.fromJson(data);
if (retour.status == "ok"){
dojo.byId("resultUpload").innerHTML = data;
}
else {
dojo.byId("resultUpload").innerHTML = retour.erreur;
}
}
});
} |
Le problème, c'est qu'il s'agit d'un fichier image que l'utilisateur doit visualiser avant de valider l'ensemble des données saisies. La visualisation s'effectue dans un ContentPane et de nombreuses variations ont été essayées autour de :
myimage.attr('content','<img src="file:///............" alt="Default selection" />');
et celà sans succés : sans doute une limitation d'accès aux fichiers locaux!
Alors, solution de secours ( et assez "tordue" ), comme le download des images fonctionne, dans le fichier retourné par l'upload je récupère l' url du fichier image sur le serveur.
L'ennui avec cette solution, c'est que j'envoie 2 fois les données du formulaire vers le serveur soit :- selection fichier : le onchange du FileInput appelle un fonction assez similaire à la fct envoiFormulaire
- validation formulaire
J'ai bien essayé d'avoir une fonction envoiFormulaireBis qui limite les éléments envoyés au FileInput ( en jouant sur le content ), mais je n'ai pas réussi à la faire fonctionner : en dernière solution il me reste la possibilité de scinder mes données en 3 formulaires ( le FileInput est en plein milieu de mes données ! ) ; mais celà me semble un peu lourd 
Merci pour les pistes et les conseils.
Partager