Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

  1. #1
    Membre régulier
    Inscrit en
    novembre 2005
    Messages
    281
    Détails du profil
    Informations forums :
    Inscription : novembre 2005
    Messages : 281
    Points : 102
    Points
    102
    Par défaut Echec de validation: 53-Le fichier 'c:\windows\system32\inetsrv\IMG_4035734409363.jpeg' est introuvable.
    Bonjour tout le monde.
    Je tente d'insérer une image dans une base de données SqlServer avec du code behind en asp.net.
    Voilà le code
    Code VB.NET : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    Private Sub ValiderImage(ByVal CheminImage As String)
            If CheminImage = "" Then Exit Sub
            SqlConn.Open()
            Dim myCommand As New SqlCommand
            myCommand.Connection = SqlConn
     
            myCommand.CommandText = "update zz_societe set Logo=@BLOBData where (Code=@Idx)"
            myCommand.Parameters.Add(New SqlParameter("@Idx", ancien_code.Value))
     
            'Dim strBLOBFilePath As String = CheminImage
            Dim fsBLOBFile As New FileStream(CheminImage, FileMode.Open, FileAccess.Read)
            Dim bytBLOBData(fsBLOBFile.Length() - 1) As Byte
            fsBLOBFile.Read(bytBLOBData, 0, bytBLOBData.Length)
            fsBLOBFile.Close()
     
            myCommand.Parameters.Add(New SqlParameter("@BLOBData", SqlDbType.VarBinary, bytBLOBData.Length, ParameterDirection.Input, False, 0, 0, Nothing, DataRowVersion.Current, bytBLOBData))
     
            myCommand.ExecuteNonQuery()
            SqlConn.Close()
            myCommand = Nothing
     
            bytBLOBData = Nothing
            fsBLOBFile = Nothing
        End Sub
    Ce code marche proprement quand je développe en vb.net simplement. Mais ici, il marche quand je suis en mode développement. Mais quand je déploie l'application sur un serveur IIS, il m'affiche l'erreur suivante
    Echec de validation: 53-Le fichier 'c:\windows\system32\inetsrv\IMG_4035734409363.jpeg' est introuvable.
    Si quelqu'un a une idée, je suis preneur.
    Merci d'avance

  2. #2
    Membre éprouvé Avatar de Phil Rob
    Homme Profil pro
    Enseignant retraité
    Inscrit en
    novembre 2013
    Messages
    750
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Enseignant retraité

    Informations forums :
    Inscription : novembre 2013
    Messages : 750
    Points : 1 284
    Points
    1 284
    Par défaut
    Bonjour
    Sans doute que le fichier n'est pas transmis pendant l'installation ou que le chemin d'accès se nomme différemment sur le serveur.
    Vérifier que le fichier est sur le serveur, dans le bon dossier, au bout du bon chemin, et que ce dossier est accessible en lecture pour le user (voir les droits)
    :-)

  3. #3
    Membre du Club
    Homme Profil pro
    Trader / Formateur / Développeur Options CBOE
    Inscrit en
    septembre 2018
    Messages
    81
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Afrique Du Sud

    Informations professionnelles :
    Activité : Trader / Formateur / Développeur Options CBOE
    Secteur : Finance

    Informations forums :
    Inscription : septembre 2018
    Messages : 81
    Points : 58
    Points
    58
    Par défaut
    Je ne suis pas (de loin!) le développeur VB.NET le plus expérimenté mais j'utilise toujours une routine comme suit:

    Code VB.NET : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    If File.Exists(strFile) AndAlso Not FileInUse(strFile) Then
    ...
    End If

    Code VB.NET : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
        Public Function FileInUse(ByVal sFile As String) As Boolean
            If File.Exists(sFile) Then
                Try
                    Using f As New FileStream(sFile, FileMode.Open, FileAccess.ReadWrite, FileShare.None)
                        f.Close()
                    End Using
                Catch exc As Exception
                    Return True
                End Try
            Else
                Return False
            End If
            Return False
        End Function

  4. #4
    Membre régulier
    Inscrit en
    novembre 2005
    Messages
    281
    Détails du profil
    Informations forums :
    Inscription : novembre 2005
    Messages : 281
    Points : 102
    Points
    102
    Par défaut
    Je ne fais pas de copie. Je fais une insertion d'image dans la base de données. Et lorsque je suis en mode création, le code marche sans problème.
    Quand je le déploie sur un serveur IIS, il me met ce message. A aucun moment je ne fais appel à ce répertoire "c:\windows\system32\inetsrv\".
    D'où sort-il et comment résoudre le problème. Je Signale que je développe en asp.net et c'est du code behind

  5. #5
    Modérateur
    Avatar de DotNetMatt
    Homme Profil pro
    CTO
    Inscrit en
    février 2010
    Messages
    3 562
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : CTO
    Secteur : Finance

    Informations forums :
    Inscription : février 2010
    Messages : 3 562
    Points : 9 652
    Points
    9 652
    Billets dans le blog
    3
    Par défaut
    Citation Envoyé par djelloharmel Voir le message
    A aucun moment je ne fais appel à ce répertoire "c:\windows\system32\inetsrv\".
    A priori tu passes en parametre le chemin :
    Code VB.NET : Sélectionner tout - Visualiser dans une fenêtre à part
    Private Sub ValiderImage(ByVal CheminImage As String)
    Puis tu charges l'image en utilisant ce chemin :
    Code VB.NET : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Dim fsBLOBFile As New FileStream(CheminImage, FileMode.Open, FileAccess.Read)
    Dim bytBLOBData(fsBLOBFile.Length() - 1) As Byte
    fsBLOBFile.Read(bytBLOBData, 0, bytBLOBData.Length)
    fsBLOBFile.Close()

    Il faudrait voir le code en amont, celui ou tu recuperes l'image du formulaire. Mais on peut deja t'orienter en disant qu'il faut recuperer directement les bytes plutot que de copier l'image sur le serveur.
    Less Is More
    Pensez à utiliser les boutons , et les balises code
    Desole pour l'absence d'accents, clavier US oblige
    Celui qui pense qu'un professionnel coute cher n'a aucune idee de ce que peut lui couter un incompetent.

Discussions similaires

  1. Réponses: 2
    Dernier message: 16/03/2009, 15h35
  2. gestion de fichier sous windows en posix
    Par fan² dans le forum Réseau
    Réponses: 11
    Dernier message: 07/12/2005, 19h40
  3. problem de compression(zip) d'un fichier sur windows.
    Par timsah dans le forum Autres Logiciels
    Réponses: 14
    Dernier message: 25/10/2005, 14h21
  4. Changer les droits d'un fichier sous windows
    Par lnikolanta dans le forum Général Conception Web
    Réponses: 6
    Dernier message: 26/09/2005, 18h03
  5. suppression de fichier impossible (windows xp)
    Par annecyrond dans le forum Windows XP
    Réponses: 8
    Dernier message: 10/03/2005, 12h38

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo