Question

J'utilise ce code pour mon LinkButton pour télécharger un fichier lorsque vous cliquez dessus. Récemment, je suis arrivé à ce problème, j'ai besoin d'un chemin virtuel.

Je voudrais rediriger vers C:\inetpub\wwwroot

 string filepath = Server.MapPath("...");           
 FileInfo myfile = new FileInfo(filepath);

Je ne sais pas quoi mettre dans Server.MapPath () parce que si je mets / elle ira à la base de mes documents de dossier et pas dans

Était-ce utile?

La solution

Si vous avez besoin pour servir des fichiers d'une autre partie de votre système, la meilleure façon de le faire est de créer un répertoire virtuel .

Dans IIS cliquez main droite sur votre site, cliquez sur « Ajouter un répertoire virtuel ». Donnez-lui un nom et pointer whereever vous avez besoin d'être. Par exemple. nouveau répertoire virtuel appelé le pointage "fichiers à" C: \ inetpub \ wwwroot \ fichiers.

Ensuite, à partir de votre site, vous pouvez référencer ces fichiers en utilisant

/files/filename.txt <-. / fichiers / un lien vers votre répertoire virtuel

Vous alors besoin de cours pour vous assurer que vous avez vos autorisations correctement mis à lire ces fichiers, mais je vais laisser cela à vous.

Autres conseils

Vous voyez actuellement un dossier sous votre My Documents parce que vous exécutez / débogage dans votre dossier de projet, en utilisant probablement le serveur de développement ou IISExpress.

Dès que vous déployez votre site dans un dossier sous C:\Inetpub, le MapPath retournera ce dossier.

Mais, en tant que mesure de sécurité, vous ne pouvez pas retourner un dossier supérieur (dans l'arborescence) que le dossier racine de votre application.

Si vous avez besoin, vous devez supprimer des dossiers à partir du chemin de retour vous. Vous pouvez utiliser System.IO.Path pour cela.

Vous n'êtes pas autorisé à se déplacer à partir de votre racine. La racine signifie que le dossier racine de l'application. Si vous essayez donc, il est une atteinte à la sécurité.

Donc, si vous voulez aller à la racine de l'application que vous pouvez utiliser Server.MapPath("~");

Server.MapPath("~"); 

vous donnera racine de l'application Web actuelle.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top