2010-11-02 4 views
1

У меня есть страница, которая позволяет пользователю загружать фотографию, и путь к фотографии будет сохранен в db, что-то вроде этого '~/images/1288598614_house - Copy_000002.png'.Проверить, существует ли файл

Итак, я хочу проверить, существует ли файл, когда пользователь извлекает фотографию.

Я попытался код ниже:

Dim myPhoto As String = ~/images/1288598614_house - Copy_000002.png 

If File.Exists(myPhoto) Then 
    hfPhotoUploadPath.Value = myPhoto 
    imgPhoto.ImageUrl = hfPhotoUploadPath.Value 
Else 
    imgPhoto.ImageUrl = "~/images/default.jpg" 
End If 

, но это не работает .....

+0

Не следует заменить # на корневой путь? – Doggett

ответ

1

Вы, вероятно, хотите сопоставьте путь к файлу (пример с использованием синтаксиса C#):

string localPath = Server.MapPath(myPhoto); 
if(File.Exists(localPath)) {...} 

однако - обнаженная файловая система не обязательно лучший вариант для этих данных - или, по крайней мере, вам нужно будет дезинфицировать его, прежде чем разрешить загрузку некоторых типов файлов. Кроме того, вы можете (в зависимости от масштаба) задуматься о нескольких серверах и т. Д.

2

вам нужно заменить ~ с Server.MapPath("~")

Dim rootPath As String = Server.MapPath("~") 
+0

Правильно, ~ применим только тогда, когда используется для путей, отображаемых в браузере, а не для путей к локальному файлу. –

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