Относительный, прямой URL - PullRequest
1 голос
/ 05 декабря 2011

У меня небольшой вопрос по поводу моего URL.

Я использую древовидное представление на своей странице asp, поэтому я использую этот каталог getcurrent.

//DirectoryInfo di = new DirectoryInfo("~" + GetTheCurrentDirectory
(selectedNodeValue));
~ = C://Inetpub//WwwRoot//
GetTheCurrentDirectory = Projects//Folder1//

Так что на данный момент это нормально, потому что я могу загрузить все файлы в папку.

После того, как я попытаюсь загрузить файлы при нажатии на него.

protected void Page_Load(object sender, EventArgs e)
{
    string path = Request["path"].ToString();
    string filename = Request["file"].ToString();

    fileDownload(filename, Server.MapPath("~\\" + path + filename));
}

Таким образом, я могу получить Путь, который является текущим каталогом. Метод, который я использую на другой странице.

На сервере. MapPatch я тоже должен поставить ~? Потому что, когда я это делаю, это работает локально, но когда я помещаю это на мой сервер, часть загрузки не работает, поэтому я полагаю, что это проблема с URL, я не могу отладить, поэтому я действительно заблудился!

Я кое-что изменил:

DirectoryInfo di = new DirectoryInfo (GetTheCurrentDirectory (selectedNodeValue));

Так что возвращает то же самое.

Так что теперь в server.MapPath путь равен примерно как в Projects // Папка 1 //

Работает локально, но все еще не на сервере ...

1 Ответ

1 голос
/ 05 декабря 2011

Попробуйте:

fileDownload(filename, Server.MapPath("~/" + path + filename));

А также, в качестве лучшей практики, не используйте + для объединения строк.Вы должны использовать string.format, поэтому я написал бы следующую строку следующим образом:

fileDownload(filename, Server.MapPath(string.format("~/{0}{1}", path, filename)));

Просто, чтобы помочь вам лучше понять вашу проблему, Server.MapPath вернет вам физический путь к файлу на сервере, который соответствуетна виртуальный путь на веб-сервере.то есть он преобразует "http://website.com/img.jpg" во что-то вроде" C: \ mywebsite \ img.jpg "

UPDATE: убедитесь, что папка, в которую вы пытаетесь сохранить файл, не доступна только для чтения, и у вас естьразрешения на создание файлов в папке.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...