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

 MySQL Discussion :

cmt insérer des fichiers dans une BD dans MySQL Workbench?


Sujet :

MySQL

  1. #1
    Membre à l'essai
    Inscrit en
    Novembre 2009
    Messages
    60
    Détails du profil
    Informations forums :
    Inscription : Novembre 2009
    Messages : 60
    Points : 19
    Points
    19
    Par défaut cmt insérer des fichiers dans une BD dans MySQL Workbench?
    Bonsoir, je souhaite insérer des données dans ma base du genre image, video ou pdf.
    J'ai vu qq par dans google qu'il faudra mettre le type de ma colonne en BLOB ou ses variétés.
    Seulement en procédant ainsi, je n'ai pas pu insérer les fichiers désirés. Au fait, en cliquant sur edit table, à la colonne de mon BLOB j'ai fait un clic droit "load value from file" puis le save.
    l'erreur dans le code sql est la suivante:

    ERROR 1406: Data too long for column 'abstract_course' at row 1

    SQL Statement:

    INSERT INTO `slstem`.`course` (`idcourse`, `title_course`, `topic_course`, `abstract_course`, `author_course`) VALUES (1, 'title', 'topic', ?, 'author')

    qui puisse m'aider SVP, il faudra absolument que je trouve une façon ou une autre pour uploader des fichiers à mon application J2EE que je développe actuellement.
    Je vous remercie.

    si mon poste est mal placé, veuillez m'excuser, c'est ma toute première visite dans ce forum

  2. #2
    Membre expert
    Avatar de Maljuna Kris
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2005
    Messages
    2 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 613
    Points : 3 950
    Points
    3 950
    Par défaut
    Saluton,
    Sans vouloir botter en touche, as-tu réfléchi à une autre façon de procéder ?
    En effet, le choix de stocker ces fichiers dans des colonnes de type BLOB est assez controversé.
    Stocker l'url des fichiers dans une colonne de type VARCHAR semble être la voie communément privilégiée.
    C'est personnellement celle pour laquelle j'ai toujours opté bien que des arguments semblent militer pour le choix du type BLOB.

    En cherchant un peu plus, j'ai trouvé ces tutoriels.

    De mémoire, je crois me souvenir qu'il y avait, à ce sujet, un papier de SQLPro sur ces forums, mais la mémoire, à mon âge ....

    [edit]Heureusement que la fonction recherche de ce forum est là pour pallier nos carences à nous autres, les alzheimériens débutants.
    Voici le lien vers le papier de SQLPro.
    [/edit]
    Kie lumo eksistas ankaŭ ombro troviĝas. L.L. Zamenhof
    articles : Comment émuler un tableau croisé [quasi] dynamique
    et : Une énigme mathématique résolue avec MySQL
    recommande l'utilisation de PDO (PHP5 Data Objects)

  3. #3
    Membre à l'essai
    Inscrit en
    Novembre 2009
    Messages
    60
    Détails du profil
    Informations forums :
    Inscription : Novembre 2009
    Messages : 60
    Points : 19
    Points
    19
    Par défaut
    Merci pour votre réponse, perso je n'ai pas eu l'idée de mettre les url des fichiers dans ma base (haha mon encadrant non plus lool)
    J'aime bien l'idée! j'essayerai de l'appliquer aujourd'hui.

    Par contre, je souhaite vous parler un peu de mon projet afin d'avoir un conseil ou solution radicale.
    Mon application est vraiment basée sur l'échange des données entre les utilisateurs, genre tu uploades un pdf, l'autre le télécharge, et ceci, peu importe le type du fichier.

    Je peux moi même uploader les fichiers dans un hébergeur puis insérer uniquement les url, mais si un utilisateur souhaite faire cette opération lui même, que fera-t-il?

    Donc svp, si vous avez une idée comment rendre l'upload et le download d fichiers possible à mes utilisateurs, veuillez me l'expliquer.

    Je vous remercie pour les liens, j'ai vrmt beacoup cherché et même posté dans d'autres forums

  4. #4
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 799
    Points : 34 031
    Points
    34 031
    Billets dans le blog
    14
    Par défaut
    Justement, l'indépendance des fichiers et de la BDD facilite les choses.
    Le fait de téléverser (uploader) un fichier est une opération facile sur le web et les langages de programmation savent très bien gérer les informations associées au fichier pour en contrôler la validité, récupérer le nom du fichier... lequel peut facilement être inséré en BDD. Et ce sera plus performant que de stocker le fichier en BDD car ce sera moins lourd pour la BDD.

    Le seul inconvénient, c'est que cette indépendance peut avoir des conséquences fâcheuses si quelqu'un touche au répertoire où sont stockés les fichiers en dehors de l'application qui fait le lien entre BDD et fichiers.

    Pour contrer ça et rendre les fichiers totalement contrôlables par le SGBD, il existe un mécanisme normatif SQL dont j'ai oublié le nom mais qui n'existe pas chez MySQL. Par contre, si tu as encore le choix du SGBD, ça existe chez Microsoft SQL Server et, je crois, chez Oracle.
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  5. #5
    Membre expert
    Avatar de Maljuna Kris
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2005
    Messages
    2 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 613
    Points : 3 950
    Points
    3 950
    Par défaut
    Citation Envoyé par electronnne Voir le message
    Par contre, je souhaite vous parler un peu de mon projet afin d'avoir un conseil ou solution radicale.
    Mon application est vraiment basée sur l'échange des données entre les utilisateurs, genre tu uploades un pdf, l'autre le télécharge, et ceci, peu importe le type du fichier.

    Je peux moi même uploader les fichiers dans un hébergeur puis insérer uniquement les url, mais si un utilisateur souhaite faire cette opération lui même, que fera-t-il?

    Donc svp, si vous avez une idée comment rendre l'upload et le download d fichiers possible à mes utilisateurs, veuillez me l'expliquer.
    Plutôt qu'une longue digression, puisque cette question revient assez souvent sur les forums, tu dois pouvoir t'inspirer de ce tutoriel.
    Il convient de bien distinguer entre la technique PHP d'utilisation de la variable globale $_FILES et les choix stratégiques concernant les droits d'accès à l'arborescence du serveur, les volumes autorisés, etc, qui doivent généralement être appréhendés, voire négociés, avec les responsables du système et de sa sécurité.
    Kie lumo eksistas ankaŭ ombro troviĝas. L.L. Zamenhof
    articles : Comment émuler un tableau croisé [quasi] dynamique
    et : Une énigme mathématique résolue avec MySQL
    recommande l'utilisation de PDO (PHP5 Data Objects)

  6. #6
    Membre à l'essai
    Inscrit en
    Novembre 2009
    Messages
    60
    Détails du profil
    Informations forums :
    Inscription : Novembre 2009
    Messages : 60
    Points : 19
    Points
    19
    Par défaut
    Le problème est que je n'ai jamais travaillé en php.

    J'ai déjà effectué des recherches tt à l'heure et les solutions que j'ai trouvées ne sont qu'en php.

    Ma question est, mettant que je travaille avec mysql workbench, netbeans, glassfish, me sera-t-il possible de réaliser la fonction d'upload et download?

    Je veux avoir une piste pour savoir comment faire mes recherches et voir tout d'abord si mon idée est bonne, réalisable, etc.

    enfin de compte je ne suis qu'une débutante dans le monde de programmation.

    Je vous remercie cher monsieur.

  7. #7
    Membre à l'essai
    Inscrit en
    Novembre 2009
    Messages
    60
    Détails du profil
    Informations forums :
    Inscription : Novembre 2009
    Messages : 60
    Points : 19
    Points
    19
    Par défaut
    Je développe en J2EE (EJB, JPA, JSF)

  8. #8
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 799
    Points : 34 031
    Points
    34 031
    Billets dans le blog
    14
    Par défaut
    MySQL Workbench n'est qu'un environnement pour modéliser, implémenter et administrer ses bases de données. Ce n'est en principe pas un outil qu'on met à disposition de l'utilisateur final.

    Netbeans est une plateforme de développement Java si je ne m'abuse. J'en conclus que vous allez développer en Java ?
    Votre besoin peut bien entendu être réalisé en Java. Cherchez alors dans les tutoriels Java et adressez vous aux forums Java pour demander de l'aide.
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  9. #9
    Membre à l'essai
    Inscrit en
    Novembre 2009
    Messages
    60
    Détails du profil
    Informations forums :
    Inscription : Novembre 2009
    Messages : 60
    Points : 19
    Points
    19
    Par défaut
    Citation Envoyé par CinePhil Voir le message
    Justement, l'indépendance des fichiers et de la BDD facilite les choses.
    Le fait de téléverser (uploader) un fichier est une opération facile sur le web et les langages de programmation savent très bien gérer les informations associées au fichier pour en contrôler la validité, récupérer le nom du fichier... lequel peut facilement être inséré en BDD. Et ce sera plus performant que de stocker le fichier en BDD car ce sera moins lourd pour la BDD.

    Le seul inconvénient, c'est que cette indépendance peut avoir des conséquences fâcheuses si quelqu'un touche au répertoire où sont stockés les fichiers en dehors de l'application qui fait le lien entre BDD et fichiers.

    Pour contrer ça et rendre les fichiers totalement contrôlables par le SGBD, il existe un mécanisme normatif SQL dont j'ai oublié le nom mais qui n'existe pas chez MySQL. Par contre, si tu as encore le choix du SGBD, ça existe chez Microsoft SQL Server et, je crois, chez Oracle.
    Je vous demande pardon, je viens de lire votre réponse.
    Peut être je dirai n'importe quoi (c'est juste par manque d'informations et d'idée):
    Si j'ai compris, je ferai mieux de stocker mes fichiers dans un dossier auquel je peux accéder à partir de ma base et mon application.

    Mettant que j'ai stocké mes fichiers dans un dossier appartenant au dossier de mon application. Comment pourrai je les connecter à ma base? mettre leurs URLs dans une colonne de type VARCHAR? et si le cas, l'url sera à partir de la racine C: par exemple? puis le récupérer en mettant un simple code de lecture de donnée d'une table dans l'app?
    ou encore mettre simplement le nom du fichier et son extension dans ma colonne dans la base, et écrire l'URL dans le code de l'application?

    Je suis vraiment coincée et je crois que je suis tellement mal prise dans ce projet que je ne sais plus comment trouver mon issue!

    Au moins s'il vous plaît, veuillez me renseigner à propos de la valeur à insérer dans la base.
    Je vous remercie

  10. #10
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 799
    Points : 34 031
    Points
    34 031
    Billets dans le blog
    14
    Par défaut
    Si tous les fichiers sont stockés dans un seul répertoire, inutile de stocker X fois /le/chemin/vers/le/dossier/des/fichiers/ en plus du nom du fichier.

    S'ils sont stockés dans plusieurs sous-répertoires d'un répertoire unique, inutile de stocker le chemin vers le répertoire de base mais il faut bien sûr stocker le nom du ou des sous-répertoires.

    La manière classique de faire est en effet de stocker l'information nécessaire pour accéder au fichier dans une colonne de type VARCHAR. À l'application ensuite de s'occuper de récupérer par une requête le nom éventuel du répertoire + le nom du fichier puis de le télécharger, ce qui se fait tout seul en HTML : il suffit d'un lien vers le fichier.

    Quant au téléversement par l'utilisateur de fichiers sur le serveur, tu trouveras des tutoriels qui expliquent comment faire selon ton langage de programmation.
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  11. #11
    Membre à l'essai
    Inscrit en
    Novembre 2009
    Messages
    60
    Détails du profil
    Informations forums :
    Inscription : Novembre 2009
    Messages : 60
    Points : 19
    Points
    19
    Par défaut
    Citation Envoyé par CinePhil Voir le message
    Si tous les fichiers sont stockés dans un seul répertoire, inutile de stocker X fois /le/chemin/vers/le/dossier/des/fichiers/ en plus du nom du fichier.

    S'ils sont stockés dans plusieurs sous-répertoires d'un répertoire unique, inutile de stocker le chemin vers le répertoire de base mais il faut bien sûr stocker le nom du ou des sous-répertoires.

    La manière classique de faire est en effet de stocker l'information nécessaire pour accéder au fichier dans une colonne de type VARCHAR. À l'application ensuite de s'occuper de récupérer par une requête le nom éventuel du répertoire + le nom du fichier puis de le télécharger, ce qui se fait tout seul en HTML : il suffit d'un lien vers le fichier.

    Quant au téléversement par l'utilisateur de fichiers sur le serveur, tu trouveras des tutoriels qui expliquent comment faire selon ton langage de programmation.
    Je vous remercie pour vos réponses
    Je vous souhaite une belle journée

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

Discussions similaires

  1. Aide pour insérer des champs d'une requete dans une table
    Par salluste dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 24/06/2014, 02h48
  2. portée d'une variable dans une fonction dans une méthode
    Par laurentg2003 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 29/06/2009, 19h05
  3. [MySQL] Insérer des données d'une table dans une autre
    Par bailamos dans le forum PHP & Base de données
    Réponses: 11
    Dernier message: 01/01/2009, 12h12
  4. [E-03] Insérer des fichiers pdf et tif dans une feuille excel
    Par Boby71C dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 24/11/2008, 21h17
  5. Envoyer une formulaire dans une page dans une Frame
    Par zooffy dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 29/06/2007, 10h13

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