Вопрос

Я использую этот код для моего Linkbutton для загрузки файла, когда вы нажимаете на него. Недавно я получил эту проблему, мне нужен виртуальный путь.

Я хотел бы перенаправить на C:\inetpub\wwwroot

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

Так что я не знаю, что поместить в server.mappath (), потому что, если я помесчу / он пойдет на основание моих папковых документов и нет в

Это было полезно?

Решение

Если вам нужно обслуживать файлы из другой части вашей системы, то лучший способ сделать это - это Создать виртуальный каталог.

В правой руке IIS нажмите на свой веб -сайт, нажмите «Добавить виртуальный каталог». Дайте ему имя и укажите его везде, где вам это нужно. Например, новый виртуальный каталог «Файлы», указывающие на «c: inetpub wwwroot files».

Затем в пределах вашего сайта вы можете ссылаться на эти файлы, используя

/files/filename.txt <- /файлы/ Будет ссылаться на ваш виртуальный каталог.

Затем вам, конечно, нужно убедиться, что у вас есть свои разрешения правильно, чтобы прочитать эти файлы, но я оставлю это вам.

Другие советы

В настоящее время вы видите папку под вашей My Documents Потому что вы работаете/отлаживаетесь в папке проекта, вероятно, используя сервер разработки или iisexpress.

Как только вы развернете свой сайт в папку под C:\Inetpub, MapPath вернет эту папку.

Но, как мера безопасности, вы не можете вернуть папку выше (в дереве) в качестве корневой папки из вашего приложения.

Если вам это нужно, вы должны самостоятельно удалить папки с возвращенного пути. Вы можете использовать System.IO.Path для этого.

Вам не разрешено перемещаться из вашего корня. Корень означает корневую папку приложения. Если вы так пытаетесь, это нарушение безопасности.

Поэтому, если вы хотите перейти к корню приложения, вы можете использовать Server.MapPath("~");

Server.MapPath("~"); 

даст вам текущий корень веб -приложения.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top