2011-11-08 4 views
0

Je sais que cela ne devrait pas être aussi difficile que je l'ai trouvé, mais je pourrais utiliser de l'aide sur un problème. J'ai utilisé, et je suis familier avec le contrôle FileUpload, fonctionne très bien.ouvrir un navigateur de dossier local à partir du navigateur Web

Mais maintenant j'ai besoin de permettre à l'utilisateur de choisir un chemin de dossier sans sélectionner un fichier. Fondamentalement, un emplacement de dossier, sur le disque dur local où mon code va lire les fichiers situés dans le dossier choisi et traiter contre eux.

Je dessine un total vide et mes recherches sur le Web ne me donnent pas ce que je cherche.

J'ai d'abord développé cela avec un contrôle Windows FolderDialogBrowser, mais il ne fonctionnera pas sur le serveur web, probablement un problème de sécurité, et je ne peux pas le changer.

Public Class FolderBrowserDialogExampleForm 
Inherits Form 

Private folderBrowserDialog1 As FolderBrowserDialog 
Private openFileDialog1 As OpenFileDialog 

Private richTextBox1 As RichTextBox 

Private mainMenu1 As MainMenu 
Private fileMenuItem As MenuItem 
Private WithEvents folderMenuItem As MenuItem, _ 
        closeMenuItem As MenuItem, _ 
        openMenuItem As MenuItem 

Private openFileName As String, folderName As String 

Private fileOpened As Boolean = False 

Y a-t-il un moyen d'ouvrir le navigateur de dossiers sur la machine locale, à partir d'un navigateur Web? Je ne cherche pas à récupérer le code ci-dessus à moins qu'il n'y ait une solution raisonnable.

message d'erreur complète:

Compilation Error 
Description: An error occurred during the compilation of a resource required to service this request. Please review the following specific error details and modify your source code appropriately. 

Compiler Error Message: BC30002: Type 'Form' is not defined. 

error Source:

Line 10: 
Line 11: Public Class FolderBrowserDialogExampleForm 
Line 12:  Inherits Form        ' this line errors 
Line 13: 
Line 14:  Private folderBrowserDialog1 As FolderBrowserDialog 

Répondre

1

Il n'y a pas de concept de sélection des dossiers dans le code HTML/JavaScript plateforme. Même si vous pouviez en sélectionner un, vous ne seriez pas en mesure de faire quoi que ce soit avec le chemin du dossier. Si vous utilisez une technologie de plug-in telle que Silverlight, Flash ou une applet Java, ils peuvent avoir des capacités de sélection et de lecture de dossiers.

+0

Eh bien, je ne suis pas sûr que ce soit vrai. Voici une autre solution que j'ai récemment trouvée. http://www.codeproject.com/KB/aspnet/krullfilesytembrowsing.aspx et Microsoft en a un dans la bibliothèque MSDN .... http: //msdn.microsoft.com/en-us/library/system.windows.forms .folderbrowserdialog (v = VS.90) .aspx J'essaie juste de corriger ce que j'ai sur le serveur sans avoir à re-coder beaucoup. – htm11h

+0

Ce premier lien serait utile si vous voulez accéder à la structure de dossiers * du serveur Web * sur le serveur, et non sur le client; les applications Web n'ont pas accès au système de fichiers d'un client. Le deuxième lien est pour les formulaires Windows; tous les contrôles WinForms n'ont pas d'équivalents WebForms. – Jacob

+0

Mon problème exactement. Mais vous me dites autre que le contrôle FileUpload, il n'y a aucun moyen de voir le chemin du dossier local à partir d'un serveur Web Bowser? Et pourquoi cela fonctionne-t-il sur mon PC DEV, indépendamment du fait que le serveur web et le PC local ne font qu'un, l'environnement est toujours un navigateur web, non? – htm11h

1

Le code que vous utilisez est pour les formulaires Windows, il ne fonctionnera donc pas dans un projet Web. C'est ce que les messages d'erreur vous disent.

Si vous voulez que l'utilisateur sélectionne un répertoire sur leur machine, le contrôle de téléchargement de fichier standard fera l'affaire. Si vous souhaitez que l'utilisateur sélectionne un répertoire sur le serveur WEB, vous devez rassembler la liste des dossiers qu'il peut sélectionner et les lui présenter dans un arbre ou une autre interface utilisateur qui a du sens pour la tâche que vous souhaitez effectuer.

+0

J'espérais seulement que l'utilisateur choisisse un dossier sur sa machine locale, sans avoir à sélectionner un fichier. – htm11h

+1

Ah, je vois votre problème. Ce n'est malheureusement pas disponible en HTML et, même si vous avez réussi à le comprendre, vous ne seriez pas en mesure de faire quoi que ce soit avec les fichiers dans ce chemin en raison de problèmes de sécurité. Si vous connaissez la base d'utilisateurs (c'est-à-dire qu'il ne s'agit pas d'un type d'application général), vous pouvez réutiliser votre implémentation de formulaire actuelle dans une application ClickOnce. Alternativement, vous pouvez créer une applet Silverlight librement en fonction de votre code actuel. –

Questions connexes