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 Discussion :

Problème chemin absolu [Débutant]


Sujet :

ASP.NET

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2011
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2011
    Messages : 16
    Par défaut Problème chemin absolu
    Bonjour, je cherche à faire un tableau avec des image, qui sont contenu dans un dossier dont le chemin est donné par une textbox. Jusque la pas trop dur. Mais le problème c'est que j'ai besoin absolument du chemin absolue pour cela. Mais quand j'insert mon image dans mon tableau avec le chemin absolue les images ne s'affichent pas. (je suis sous visual studio)

    Par contre quand je prend le code source de la page et que je le met dans un fichier html cela fonctionne bien. Donc je pense que le serveur local à du mal à accéder à mon disque. Avez vous une idée de comment faire pour passer outre se problème?

  2. #2
    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
    Par défaut
    L'explication du problème est pas très claire... on comprendrait mieux si tu postais ton code

  3. #3
    Membre extrêmement actif

    Homme Profil pro
    Software Developer
    Inscrit en
    Mars 2008
    Messages
    1 470
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Software Developer

    Informations forums :
    Inscription : Mars 2008
    Messages : 1 470
    Par défaut
    Peut etre que ton dossier n'est pas accessible publiquement
    Ou tu as utilise un mauvais separateur de dossier...
    Ou utilise le caractere "~" pour designer la racine de ton projet

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2011
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2011
    Messages : 16
    Par défaut
    Merci pour vos réponses. Donc ce que j’expliquais en gros c'est que mon code qui provient de ma page asp ne peut afficher les images, alors que quand je fais clic droit code source de la page (dans mon navigateur préférer) et que je le copie dans un html, celui-ci fonctionne.

    Voici le code de ma fonction :

    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
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    protected void displayFolder_Click(object sender, EventArgs e) {
                if ((pathText.Text != null) && (pathText.Text != "")) {
                    DirectoryInfo fileListing = null;
                    try {
                        fileListing = new DirectoryInfo(pathText.Text);
                    } catch {
                        errorLabel.Text = ERROR_MESSAGE_PATH;
                        tableImage.Rows.Clear();
                    }
                    if (fileListing != null) {
                        Bitmap image;
                        try {
                            HtmlTableRow pRow = new HtmlTableRow();
     
                            HtmlTableCell phimage = new HtmlTableCell();
                            phimage.InnerText = "Image";
                            phimage.Style.Add("background-color", "#555555");
                            phimage.Style.Add("color", "#FFFFFF");
                            pRow.Cells.Add(phimage);
                            HtmlTableCell pnom = new HtmlTableCell();
                            pnom.InnerText = "Nom de l'image";
                            pnom.Style.Add("background-color", "#555555");
                            pnom.Style.Add("color", "#FFFFFF");
                            pRow.Cells.Add(pnom);
                            HtmlTableCell ptaille = new HtmlTableCell();
                            ptaille.InnerText = "Taille en octets";
                            ptaille.Style.Add("background-color", "#555555");
                            ptaille.Style.Add("color", "#FFFFFF");
                            pRow.Cells.Add(ptaille);
                            HtmlTableCell pdate = new HtmlTableCell();
                            pdate.InnerText = "Date de Modification";
                            pdate.Style.Add("background-color", "#555555");
                            pdate.Style.Add("color", "#FFFFFF");
                            pRow.Cells.Add(pdate);
     
                            tableImage.Rows.Add(pRow);
                            foreach (FileInfo file in fileListing.GetFiles()) {
                                image = null;
                                try {
                                    image = (Bitmap)System.Drawing.Image.FromFile(file.FullName, true);
                                } catch (OutOfMemoryException) {
     
                                }
                                if (image != null) {
                                    HtmlTableRow newRow = new HtmlTableRow();
     
                                    HtmlTableCell himage = new HtmlTableCell();
                                    //himage.InnerHtml = "<img src=\"D:/Image/mario/11786029.png\" alt=\"" + file.Name + "\"/>";
                                    int w = image.Width;
                                    int h = image.Height;
                                    if ((w > MAX_WHIDTH_IMAGE) || (h > MAX_HEIGHT_IMAGE)) {
                                        //en pourcent
                                        float pw = MAX_WHIDTH_IMAGE / ((float)image.Width);
                                        float ph = MAX_HEIGHT_IMAGE / ((float)image.Height);
                                        float min = Math.Min(pw, ph);
                                        //en pixel
                                        w = (int)(image.Width * min);
                                        h = (int)(image.Height * min);
                                    }
                                    himage.InnerHtml = "<img src=\"file:\\\\" + file.FullName + "\" width=\"" + w + "\" height=\"" + h + "\" style=\"margin:5px;\"/>";
     
                                    newRow.Cells.Add(himage);
     
     
                                    HtmlTableCell nom = new HtmlTableCell();
                                    nom.InnerText = file.Name;
                                    newRow.Cells.Add(nom);
                                    HtmlTableCell taille = new HtmlTableCell();
                                    taille.InnerText = file.Length.ToString();
                                    newRow.Cells.Add(taille);
                                    HtmlTableCell date = new HtmlTableCell();
                                    date.InnerText = file.LastWriteTime.ToString("dd/MM/yyyy HH:mm");
                                    newRow.Cells.Add(date);
     
                                    tableImage.Rows.Add(newRow);
                                }
     
                            }
                        } catch {
                        }
                    }
     
     
                }
            }
    en réponse à alex-vino : le séparateur doit fonctionner sinon mon code ne fonctionnerai pas en html je pense.
    pour le "~" je peut pas l'utiliser comme c'est l'utilisateur qui doit donner l'adresse du dossier qui peut être sur un autre disque dur.
    et pour l'accessibilité, je pense que c'est ça, mais ce que je trouve bizard, c'est que je peut récupérer les informations des images mais je ne peut pas afficher les images. je vais chercher dans cette piste là.

    merci pour votre aides.

  5. #5
    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
    Par défaut
    Ca a pas de sens de faire ça en ASP.NET... tu essaies d'afficher sur ta page ASP.NET des images qui sont sur ton disque, en mettant le chemin local (genre C:\dossier\image.jpg). Le client ne peut pas accéder directement au disque local du serveur, et heureusement ! Il faut que les images se trouvent à un endroit accessible via le site web, sinon ça ne peut fonctionner qu'en local...

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2011
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2011
    Messages : 16
    Par défaut
    cela peu avoir du sens pour plusieurs raison, par exemple sur un back office pour voir des informations sur des image enregistrées sur le serveur...

    mais ici, c'est un tp, c'est se qui nous est demandé, donc bêtement je fais se que l'on me demande.

  7. #7
    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
    Par défaut
    Citation Envoyé par zangdar666 Voir le message
    mais ici, c'est un tp, c'est se qui nous est demandé, donc bêtement je fais se que l'on me demande.
    Ca c'est typique des profs... comme ils travaillent jamais sur de "vraies" applications, ils perdent un peu le sens des réalités

    Bah je vois pas trop ce qui cloche, si ce n'est que peut-être le navigateur n'autorise pas l'affichage d'images du disque local à partir d'une page qui n'est pas locale (pour des raisons de sécurité). Tu as essayé avec un autre navigateur ? En modifiant éventuellement les paramètres de sécurité ?

  8. #8
    Membre éprouvé
    Avatar de Pelote2012
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2008
    Messages
    925
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2008
    Messages : 925
    Billets dans le blog
    2
    Par défaut
    meme si c'est un TP, essai de faire propre, il vaut mieux perdre un peu de temps dans la structure d'un site au début, tu en gagneras beaucoup apès.
    Tu peux te faire un dossier image ou tu insère tes fichiers images et tu travailles avec ces fichiers, ou si tu sais comment faire dans ton IIS, tu ajoute un dossier virtuel images qui pointe sur le dossier d'origine et pour y accéder tu utilises des commandes comme Request.Url.AbsoluteUri ou matpath

  9. #9
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2011
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2011
    Messages : 16
    Par défaut
    j'ai trouver une demi solution, je copie les images dans mon projet pour que cela fonctionne correctement. c'est assez moche mais je ne sais pas comment faire autrement.

    merci a tout le monde.

  10. #10
    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
    Par défaut
    Une solution plus propre serait de créer un handler HTTP (.ashx) pour renvoyer au client le contenu de l'image, mais ça dépasse sans doute le cadre de ton cours...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème de chemin absolu dans une tâche
    Par ToniConti dans le forum Pentaho
    Réponses: 4
    Dernier message: 13/04/2010, 17h07
  2. Problème de récupération d'un chemin absolu
    Par chebmo1986 dans le forum Langage
    Réponses: 1
    Dernier message: 29/04/2009, 16h47
  3. problème de chemin absolu en réseau local
    Par dreanlin dans le forum Windows XP
    Réponses: 2
    Dernier message: 26/03/2008, 09h04
  4. Réponses: 6
    Dernier message: 07/01/2008, 15h13
  5. Problème de chemin absolu et relatif
    Par nabolo dans le forum BIRT
    Réponses: 0
    Dernier message: 07/11/2007, 17h34

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