2010-11-02 10 views
1

J'ai une page qui permet à l'utilisateur de télécharger une photo et le chemin de la photo serait enregistrer en DB, qui est quelque chose comme ça '~/images/1288598614_house - Copy_000002.png'. Donc, je voudrais vérifier que le fichier existe lorsque l'utilisateur récupère la photo.Vérifiez si le fichier existe

J'ai essayé le code ci-dessous:

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 

mais il ne fonctionne pas .....

+0

Ne devrait-il pas être remplacé par un chemin racine? – Doggett

Répondre

1

Vous voulez probablement mappez-le sur un chemin de fichier (exemple en utilisant la syntaxe C#):

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

cependant - le système de fichiers n'est pas nu nécessairement la meilleure option pour ces données - ou tout au moins, vous auriez besoin de le désinfecter avant d'autoriser le téléchargement de certains types de fichiers. En outre, vous pourriez (en fonction de l'échelle) besoin de penser à plusieurs serveurs, etc.

2

vous devez remplacer le ~ avec Server.MapPath("~")

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

Correct, ~ n'est applicable que pour les chemins affichés dans le navigateur, pas les chemins de fichiers locaux. –

Questions connexes