путь из файла загрузки - PullRequest
0 голосов
/ 02 мая 2011

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

как я могу получить реальный путьзагруженного файла.

Я использую:

Path.GetFullPath(FileUpload1.FileName)

, чтобы получить путь к файлу ..

, но я получаю путь как:

"C:\Program Files\Common Files\Microsoft Shared\DevServer\10.0\+filename"

Ответы [ 2 ]

4 голосов
/ 02 мая 2011

Это невозможно, так как это будет представлять угрозу безопасности.

Мне не ясно, какой путь вы получаете , так как вам нужно только получить имя файла - вы должны указать путь для сохранения файла.


Edit:

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


Редактировать 2:

Вы используете Path.GetFullPath и предоставляете только имя файла. Когда это происходит, путь текущий каталог добавляется к имени файла. Это будет каталог, из которого ваш код запускается по умолчанию.

Из MSDN:

Файл или каталог, указанный в path, не обязательно должен существовать. Например, если c: \ temp \ newdir является текущим каталогом, вызов GetFullPath для имени файла, такого как test.txt, возвращает c: \ temp \ newdir \ test.txt. Файл не должен существовать.

1 голос
/ 02 мая 2011

Поймите, что то, что вы получаете на сервере, не является "файлом" в том смысле, что вы находитесь в файловой системе. То, что вы получаете, это веб-запрос. Он содержит заголовок и данные, которые были заполнены из файла, и вы, скорее всего, сохраните его в файловой системе на сервере. Но к тому времени, когда он поступает как веб-запрос, он не является частью файловой системы и не имеет никакого «пути», о котором можно было бы говорить.

Клиент должен будет отправить «путь» как часть заголовка запроса, что не не должно произойти.

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