2010-06-17 4 views
1

Je travaille sur une application Web ASP.NET pour nos utilisateurs intranet d'entreprise. J'ai un formulaire où un utilisateur doit fournir un chemin d'accès au fichier sur le réseau local (quelque chose comme "\ localServer \ someFolder \ someFile.ext") sans télécharger le fichier réel. Le problème est que les utilisateurs ne veulent pas entrer le chemin complet du fichier et veulent utiliser une sorte de boîte de dialogue de navigation visuelle. L'élément standard HTML < input type = fichier > permet de rechercher un fichier, mais la plupart des navigateurs (sauf IE) ne permettent pas d'accéder au chemin complet du fichier, donc je pense que cela devrait être fait par composant externe comme Silverlight, Flash, applet Java etc.Contrôle du navigateur de fichiers pour remplacer <input type = "file">

J'ai essayé de le faire avec Silverlight, mais j'obtiens une SecurityException en essayant d'accéder au chemin complet du fichier en utilisant la classe OpenFileDialog de Silverlight.

Cette applet Java http://jumploader.com/demo_images.html semble faire quelque chose de similaire à ce que je recherche, mais elle est axée sur le téléchargement de fichiers - je dois seulement obtenir le chemin complet du fichier et le transmettre au serveur sous forme de chaîne.

Toutes les suggestions seraient appréciées.

+0

Je pense que vous parlez de la machine du client? –

+0

Oui, vous avez raison - je parle de parcourir les fichiers sur un réseau local qui est disponible pour la machine du client. L'hypothèse ici est que le serveur sera sur le même réseau et sera capable d'attraper le fichier aussi bien (ou il renverra une erreur s'il ne peut pas). Sinon, si je peux utiliser un contrôle qui exposera le réseau local disponible au serveur dans le navigateur du client, cela fonctionnera également pour moi (pourrait être encore meilleure solution dans mon cas). –

Répondre

2

Telerik ASP.NET AJAX RadFileExplorer a la fonctionnalité que vous cherchez: http://www.telerik.com/products/aspnet-ajax/fileexplorer.aspx

Vous pouvez utiliser leur fournisseur de contenu de fichier personnalisé pour accrocher l'interface graphique pour le système de fichiers de votre serveur. Parlez-vous de la machine personnelle du client ou du serveur? http://demos.telerik.com/aspnet-ajax/fileexplorer/examples/server-sideapi/dbfilebrowsercontentprovider/defaultcs.aspx

0

Cela devrait être possible avec les capacités de téléchargement de Flash. SWFUpload dispose d'une API à laquelle vous pouvez accéder depuis JavaScript pour extraire le nom de fichier sélectionné sans rien télécharger. Voir docs here, par exemple getFile():

getFile est utilisé pour récupérer un objet de fichier dans la file d'attente. Le fichier récupéré en transmettant un identifiant de fichier (la propriété id d'un objet fichier) ou un index de fichier (la propriété index d'un objet fichier).

+0

Je dois faire la même chose. Malheureusement, la méthode SWFUpload getFile() renvoie un objet fichier avec la propriété 'name'. Leur doc dit .. "name: string, \t \t \t // Le nom du fichier Le chemin n'est pas inclus." – Garry

Questions connexes