2013-07-26 4 views
0

Я пытаюсь загрузить файл в asp.net, используя следующий кодЗагрузка файла ASP.net с не-сервера - проблема с Server.MapPath?

Dim FileName As String = System.IO.Path.GetFileName(ClientFileName) 
MyFile.PostedFile.SaveAs(Server.MapPath("~/UploadedImportedFiles/" + FileName)) 

если файл загружен (скажем, BOOK1.XLS) находится на компьютере, который также сервер все работает отлично, но если файл находится на ПК, который не является сервером, который он терпит неудачу во второй строке. Я думаю, проблема в том, что Server.MapPath, похоже, относится к не серверному ПК, когда он загружается оттуда.

Thanks

+0

Вы пробовали Server.MapPath ("~/UploadedImportedFiles /") + FileName –

+0

Просьба сообщить о том, что вы получаете 'ClientFileName' –

+0

К сожалению, вы пытаетесь "захватить" файл «загрузить» в CodeBehind? Или вы разрешаете пользователям выбирать и загружать файлы через браузер? Вы не можете «брать» файлы с клиентских компьютеров. – Alexander

ответ

1

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

string filename = Path.GetFileName(FileUploadControl.FileName); 

Конечно, имя управления изменено самостоятельно.

Пожалуйста, см: http://msdn.microsoft.com/en-us/library/aa479405.aspx

+0

@Garath ... надеюсь, что вы не против меня добавив ссылку на MSDN на этом –

+0

. Я не вижу, как это помогает. Path.GetFileName - это просто статическая/совместно используемая функция, которая возвращает имя файла для заданного пути. Предположительно, в вопросе OP, ClientFileName является либо полным путем к загруженному файлу, либо даже самому имени файла. Все, что используется, это иметь имя для сохранения файла, как во второй строке. Не могли бы вы объяснить дальше? –

+0

Спасибо за это - я думаю, что он получает правильное имя (он получает Book1.xls - я думаю, что это спасение Asline, это проблема Dave – user954021

Смежные вопросы