2015-09-30 6 views
1

Извините, если это простой вопрос, но я по-прежнему не компетентен в кодировании. Через ASP.net C# я загружаю файл в Uploads с UploadHandler.ashx, который работает нормально. Затем я пытаюсь ссылаться на файл. Прежде чем ссылаться на него проверить, существует ли файл сЯ не могу ссылаться на загруженный файл

if (File.Exists(filePath)) 
{ 
    Do stuff; 
} 
else 
{ 
    Do other stuff; 
} 

при отладке Filepath показывает как «../Uploads/P3301_5_40_4.bin», которая является то, что я ожидал, но существует, если файл возвращает ложь , Я вхожу в путь к файлу с неправильным синтаксисом или есть что-то еще, что я испортил? Я подтвердил, что файл есть.

+0

Вы действительно используете ссылку или строку файла пути? – Ben

+0

вам нужно преобразовать виртуальный путь в соответствующий путь к файлу Windows –

ответ

1

File.Exists, вероятно, ищет физический путь к файлу на сервере. Попробуйте использовать Server.MapPath, который сопоставляет виртуальный путь на вашем веб-сайте с физическим путем на сервере.

string physicalPath = Server.MapPath(filePath); 
if (System.IO.File.Exists(physicalPath)) 
{ 
    // do stuff 
} 
else 
{ 
    // handle error 
} 
+1

Это сделало трюк. Благодарю. –

0

Вы должны преобразовать Filepath используя что-то вроде этого:

filePath = HttpContext.Current.Server.MapPath(filePath);