OVH Cloud OVH Cloud

Boite de dialogue de sélection de fichier...

2 réponses
Avatar
Ryo
Bonjour

J'aimerai faire un bouton qui ouvre une boite de dialogue de sélection de
fichier.
Je ne me sert pas du controle FileUpload car je ne veux pas que je chemin du
fichier apparaisse.
J'ai trouvé le bout de code suivant qui est censé ouvrir ce type de boite de
dialogue:
string file = "";

OpenFileDialog dlg = new OpenFileDialog();

dlg.InitialDirectory = "c:\\";
dlg.Filter = "All files (*.*)|*.*";
dlg.FilterIndex = 1;

if (dlg.ShowDialog() == DialogResult.OK)
file = dlg.FileName;
Le truc c'est que quand je m'en sert sur mon bouton j'ai la magnifique
erreur suivante:
Current thread must set to single thread apartment (STA) mode before OLE
calls can be made. Ensure that your Main function has STAThreadAttribute
marked on it.
Donc voila ça marche pas ;-)
Si quelqu'un à une idée.
Merci d'avance.

2 réponses

Avatar
Patrice
C'est bien dans une application ASP.NET ? Ne pas oublier que code s'exécute
côté serveur.

De plus quel est le répertoire courant que le navigateur va devoir prendre
en compte si tu ne veux pas du nom complet ?

En résumé :
- htmlInputFile
- sinon il faut un contrôle ActiveX, .NET ou une applet Java côté client
mais cela nécessite l'accord de l'utilisateur
--
Patrice

"Ryo" a écrit dans le message de
news:
Bonjour

J'aimerai faire un bouton qui ouvre une boite de dialogue de sélection de
fichier.
Je ne me sert pas du controle FileUpload car je ne veux pas que je chemin


du
fichier apparaisse.
J'ai trouvé le bout de code suivant qui est censé ouvrir ce type de boite


de
dialogue:
string file = "";

OpenFileDialog dlg = new OpenFileDialog();

dlg.InitialDirectory = "c:";
dlg.Filter = "All files (*.*)|*.*";
dlg.FilterIndex = 1;

if (dlg.ShowDialog() == DialogResult.OK)
file = dlg.FileName;
Le truc c'est que quand je m'en sert sur mon bouton j'ai la magnifique
erreur suivante:
Current thread must set to single thread apartment (STA) mode before OLE
calls can be made. Ensure that your Main function has STAThreadAttribute
marked on it.
Donc voila ça marche pas ;-)
Si quelqu'un à une idée.
Merci d'avance.


Avatar
Francois Muller
Bonjour

"Ryo" a écrit dans le message de news:


J'aimerai faire un bouton qui ouvre une boite de dialogue de sélection de
fichier.
Je ne me sert pas du controle FileUpload car je ne veux pas que je chemin
du
fichier apparaisse.
J'ai trouvé le bout de code suivant qui est censé ouvrir ce type de boite
de
dialogue:
string file = "";



Le code en question va ouvrit une boite de dialogue, certes, mais sur le
serveur !!! (dans la pratique, je pense que IIS ne laissera pas faire).
Dans ton cas, le plus simple est d'utiliser la balise html InputFile, ou
d'écrire un applet Java (cela impose à l'utilisateur d'accepter de laisser
exécuter ce genre d'applet) ou télécharger un contrôle ActiveX (la encore,
si l'utilisateur est d'accord, avec, en plus, de gros soucis pour les
clients dont le browser ne s'exécute pas sur une machine Windows)

F.