Вопрос

Я загружаю файл с помощью простого элемента управления FileUpload с именем theFile (АСП.НЕТ).Я пытаюсь получить абсолютный путь к файлу, но thefile.PostedFile.FileName и thefile.FileName абсолютно одинаковые, только имя файла, без пути!Я не могу использовать Server.MapPath, потому что буду сохранять этот файл на другом сервере (передавать через массив байтов через веб-сервис).

Он прерывается на этой строке:

Dim fStream As New FileStream(thefile.FileName, FileMode.Open, FileAccess.Read)

потому что он берет имя файла и сопоставляет его с относительным путем моего VS!Мне нужен абсолютный путь...

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

Решение

Файл, загруженный через HTTP, никогда не будет содержать полный путь на удаленном (клиентском) компьютере — он может раскрыть информацию о структуре каталогов и поэтому считается угрозой безопасности.Плюс какая от этого польза?Если кто-то загружает вам файл из Интернета, зачем вам пытаться открыть файловый поток на вашем локальном компьютере (сервер asp.net) по пути, который существовал на его компьютере?

Загруженные файлы фактически передаются в виде потока байтов как часть запроса.Вам необходимо получить доступ к ФилеБайтс свойство элемента управления, чтобы получить файл, или вызовите метод SaveAs(), чтобы сохранить его на сервере.В вашем случае вы, вероятно, могли бы просто получить байты и отправить их на вызов веб-сервиса, который вам нужно сделать.

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

(передача через массив байтов через веб-сервис).

Поскольку в настоящее время вам требуется массив байтов файла, почему бы не получить доступ к массиву байтов файла через свойство File.FileBytes?

Вот ссылка на свойство FileBytes веб-элемента управления FileUpload: http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.fileupload.filebytes.aspx

Если вы хотите получить прямой доступ к объекту Stream, вы можете использовать свойство FileContent.Вот ссылка на свойство FileContent веб-элемента управления FileUpload: http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.fileupload.filecontent.aspx

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