IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
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

ASP.NET MVC Discussion :

Ouverture fichier réseau


Sujet :

ASP.NET MVC

  1. #1
    Membre régulier
    Inscrit en
    Avril 2008
    Messages
    279
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 279
    Points : 71
    Points
    71
    Par défaut Ouverture fichier réseau
    Bonjour tout le monde,

    Après plusieurs recherches sur internet je n'arrive pas à trouver un code fonctionnel qui me permettrai tout simplement d'ouvrir un fichier sur le réseau.

    Dans mon application web les utilisateurs peuvent renseigner le chemin d'un fichier et en cliquant sur le "cliquez ici" télécharger le fichier.

    PS : Le fichier est sur un emplacement réseau ex \\ip\ ou un dossier virtuel Z:\\ ect

    J'ai fait plusieurs tests qui fonctionnent sur mon pc en local mais quand je fait la même chose sur le serveur ça ne fonctionne pas.

    Code : 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
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
     
            public FileResult btnTelechargerFichier(string Emplacement)
            {
     
                byte[] fileBytes = System.IO.File.ReadAllBytes(Emplacement);
                string fileName = ExtractFilename(@Emplacement);
                return File(fileBytes, System.Net.Mime.MediaTypeNames.Application.Octet, fileName);
     
            }
     
    public static string ExtractFilename(string filepath)
            {
     
                if (filepath.Trim().EndsWith(@"\"))
                    return String.Empty;
     
                int position = filepath.LastIndexOf('\\');
     
                if (position == -1)
                {
                 
                    if (System.IO.File.Exists(Environment.CurrentDirectory + Path.DirectorySeparatorChar + filepath))
                        return filepath;
                    else
                        return String.Empty;
                }
                else
                {
              
                    if (System.IO.File.Exists(filepath))
                  
                        return filepath.Substring(position + 1);
                    else
                        return String.Empty;
                }
            }
    Merci pour votre aide

  2. #2
    Membre régulier
    Inscrit en
    Avril 2008
    Messages
    279
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 279
    Points : 71
    Points
    71
    Par défaut
    Je viens de tester cette fonction razor ça ouvrir le navigateur avec une page d'erreur mais en cliquant sur le lien ça ouvrir bien le fichier

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <a href='@Html.Raw(Model.Lien_Hypertexte)'>Cliquez ici</a>

  3. #3
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 753
    Points
    39 753
    Par défaut
    Il faut donner l'autorisation à l'utilisateur ASP.NET d'accéder au répertoire réseau

  4. #4
    Membre régulier
    Inscrit en
    Avril 2008
    Messages
    279
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 279
    Points : 71
    Points
    71
    Par défaut
    Qu'est ce que tu veux dire par données accès à l'utilisateur ASP.NET d'accéder au répertoire réseau. Les utilisateurs qui donnent le lien sur l'application ont déjà accès

  5. #5
    Membre régulier
    Inscrit en
    Avril 2008
    Messages
    279
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 279
    Points : 71
    Points
    71
    Par défaut
    Je viens de faire le test directement sur le serveur car en local ça fonctionne parfaitement l'erreur est la suivante

    en local le lien est : file://Dossier/Sousdossier/FichierExcel.xlsx

    sur le serveur : http://IP/NomSite/\\Dossier\Sousdoss...hierExcel.xlsx

    Si sur le le lien serveur dans mon navigateur je supprimer "http://IP/NomSite/" ça fonctionne correctement.

    Je ne vois pas pourquoi ça change entre le serveur et le local !!

    Merci pour votre aide

  6. #6
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 753
    Points
    39 753
    Par défaut
    En fait je crois que j'ai pas compris ce que tu cherchais à faire... Tu affiches un lien sur lequel l'utilisateur va cliquer pour accéder à un fichier sur le réseau ?

  7. #7
    Membre régulier
    Inscrit en
    Avril 2008
    Messages
    279
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 279
    Points : 71
    Points
    71
    Par défaut
    Tout a fait,

    l'utilisateur à un champ texte pour mettre le lien d'un fichier sur le réseau que tout le monde peut avoir sur l'explorateur windows.

    Pour afficher mon cliquer ici j'utilise cette commande en testant si le lien n'est pas vide

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <a href='@Html.Raw(Model.Lien_Hypertexte)'>Cliquez ici</a>
    Quand je fais le test en local j'ai bien file://Dossier/Sousdossier/FichierExcel.xlsx (L'utilisateur à rentré \\Dossier\Sousdossier\FichierExcel.xlsx) c'est le RAw qui ajouté le file:// et qui remplace les \ par les /.

    Par contre quand j'ouvre mon application qui est sur le serveur à l'adresse ip/Nom site (IIS 6.0) j'ai le lien suivant :
    http://IP/NomSite/\\Dossier\Sousdoss...hierExcel.xlsx et si je supprimer http://IP/NomSite/ et que je réactualise ça fonctionne mais je ne comprends pas pourquoi quand j'ouvre l'application sur le server du moins sur htpp://IP j'ai http://IP/NomSite/ en plus

  8. #8
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 753
    Points
    39 753
    Par défaut
    Essaie comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <a href='@Html.Raw(new Uri(Model.Lien_Hypertexte).AbsoluteUri)'>Cliquez ici</a>
    Ca va transformer "\\Dossier\Sousdossier\FichierExcel.xlsx" en "file://Dossier/Sousdossier/FichierExcel.xlsx", de façon à ce que ce soit toujours traité comme une URL absolue

    c'est le RAw qui ajouté le file:// et qui remplace les \ par les /.
    Non, je ne pense pas que ce soit ça... Justement, Raw signifie "brut", donc ça écrit la chaine telle quelle dans le HTML. A mon avis si tu regardes la source de la page depuis le navigateur, tu verras que le chemin n'a pas été modifié. C'est le navigateur qui transforme le lien.

  9. #9
    Membre régulier
    Inscrit en
    Avril 2008
    Messages
    279
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 279
    Points : 71
    Points
    71
    Par défaut
    Merci pour ton retour ça semble avancer mais la je viens de voir que ma racine serveur a été supprimer

    Lien de base : \\ad\liste\Projet\fichier.xlsx

    Coté serveur : file:///liste/Projets/fichier.xlsx (IL ME MANQUE LE \\AD)

    Après un test avec IE j'ai bien le bon chemin contrairement à FIREFOX ou il y manque mon AD ? d'ou vient le problème entre IE et FIREFOX.

    Par contre dans tous les cas quand je clique sur mon cliquez ici rien ce se passe ?

Discussions similaires

  1. ouverture fichier sur disque réseau windows
    Par quiscoul dans le forum Général Python
    Réponses: 1
    Dernier message: 28/05/2009, 13h19
  2. [Réseau]Ouverture fichier mdb impossible en réseau
    Par PACLET dans le forum Sécurité
    Réponses: 2
    Dernier message: 04/04/2007, 14h18
  3. Problème ouverture fichier par double clic...
    Par sankookai dans le forum MFC
    Réponses: 4
    Dernier message: 11/05/2005, 09h13
  4. ouverture access réseau
    Par mschistozis dans le forum Access
    Réponses: 8
    Dernier message: 29/10/2004, 15h19
  5. [VBA-E] Macro ouverture fichier déja ouvert
    Par bhaal76 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 18/12/2002, 14h30

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