recuperation de nom de fichier

Le
J-F Portala
Bonjour,

j'ai le petit souci suivant:
je voudrais dans un formulaire recupérer l'emplacement d'une image et la
stocker dans une base de données.
Pour cela j'utilise input file, qui me permet de parcourir le disque pour
trouver l'emplacement.

Je ne récupère que le nom du fichier sans le chemin.

Les images sont stockées sur le serveur. Le but est de pouvoir réafficher
l'image par la suite à côté de l'article.

Comment dois m'y prendre?

Merci vos conseils

Jeff
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses Page 1 / 2
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Yamo'
Le #22066741
Bonjour,

Le Wed, 15 Oct 2008 09:32:31 +0200, J-F Portala a écrit ce message (

Je ne récupère que le nom du fichier sans le chemin.



Pour des raisons de sécurité, je ne crois pas qu'on puisse récupérer le
chemin.


Stéphane
--
JS: par curiosité, quel matériel il faut avoir pour créer son propre FAI ?
J : Pour créer un FAI comme Havas Off Line, une machine à café suffit,
pour l'assistance technique.
-+- in: Guide du Cabaliste Usenet - Bien configurer sa Hot-Line -+-
CrazyCat
Le #22066731
J-F Portala wrote:
Je ne récupère que le nom du fichier sans le chemin.



C'est tout à fait normal, ce qui compte c'est le fichier envoyé, pas sa
provenance exacte.

Les images sont stockées sur le serveur. Le but est de pouvoir réafficher
l'image par la suite à côté de l'article.



Normalement, tu dois maitriser l'endroit où tu copies l'image (voir les
explications sur http://fr2.php.net/manual/fr/features.file-upload.php)


--
Réseau IRC Francophone: http://www.zeolia.net
Aide et astuces webmasters : http://www.c-p-f.org
Communauté Francophone sur les Eggdrops: http://www.eggdrop.fr
SAM
Le #22066721
Le 10/15/08 9:32 AM, J-F Portala a écrit :
Bonjour,

j'ai le petit souci suivant:
je voudrais dans un formulaire recupérer l'emplacement d'une image et la
stocker dans une base de données.
Pour cela j'utilise input file, qui me permet de parcourir le disque pour
trouver l'emplacement.



Afficher l'image en simultané par Javascript
ne sera possible qu'en "local",
et encore ...
- sans doute que pour un environnement (Win, Linux, Mac)
- les nouveaux brouteurs doivent être encore plus chatouilleux que leurs
ainés et par soucis de sécurité ne donneront jamais le path

Les images sont stockées sur le serveur. Le but est de pouvoir réafficher
l'image par la suite à côté de l'article.



alors ... interroger la BdD
(il faut d'abord uploader l'image puis aller la rechercher)

Comment dois m'y prendre?



Ajax ?


--
sm
Pierre Goiffon
Le #22066711
SAM wrote:
je voudrais dans un formulaire recupérer l'emplacement d'une image et
la stocker dans une base de données.
Pour cela j'utilise input file, qui me permet de parcourir le disque
pour trouver l'emplacement.



Afficher l'image en simultané par Javascript
ne sera possible qu'en "local",
et encore ...



Oui et encore ! :)

Je n'ai plus la ref sous la main et pas assez de temps mes excuses, mais
nous utilisons cette technique dans notre application pour prévisualiser
l'image sélectionnée dans le input file. A partir de certaines versions
de navigateur, on ne pouvait plus aller lire le contenu complet du input
file.
Pierre Goiffon
Le #22066701
J-F Portala wrote:
je voudrais dans un formulaire recupérer l'emplacement d'une image et la
stocker dans une base de données.



Par "stocker dans une bdd", vous voulez dire dans un champ blob ou son
équivalent ? Ne le faites que si vous en avez l'absolue nécessité...
J-F Portala
Le #22066691
Bonjour et merci de votre aide.

J'ai oublié de vous dire que le tout fonctionnait sur un intranet.
Les images sont stockées sur le serveur.

A partir des postes distants connectés à l'intranet, je souhaiterais
afficher l'image dont l'emplacement est enregistré dans la base de données,
comme lorsque l'on affiche
la photo d'un article lorsque celui ci est sélectionné.
C'est la partie exploitation.

Mais la premiere partie consiste à créer la table des "articles" avec les
caractéristiques de l'article et l'emplacement de sa photo.
J'ai donc créé un formulaire dans lequel j'ai utilisé un champ input
type="file" qui génère un bouton parcourir.
J'ai essayé d'afficher en javascript le contenue de la variable mais je n'ai
que le nom du fichier.

Si le chemin est impossible à récupérer, cela veut dire qu'il faut que je
stocke l'emplacement du dossier contenant les images en "dur" dans mon
application et que je colle au fichier
dans la base de données le chemin.
Je pensais travailler en stockant uniquement les chemins des images, sans
enregistrer les images sous forme de blob.

Je conviens que ma description initiale n'etait pas assez précise. J'en suis
désolé.

Jeff
CrazyCat
Le #22066681
J-F Portala wrote:
Si le chemin est impossible à récupérer, cela veut dire qu'il faut que je
stocke l'emplacement du dossier contenant les images en "dur" dans mon
application et que je colle au fichier
dans la base de données le chemin.
Je pensais travailler en stockant uniquement les chemins des images, sans
enregistrer les images sous forme de blob.



Mais enfin!
Si tu as un formulaire avec un champ "file", tu fais donc un upload de
l'image.
Copies là dans un répertoire du serveur, ne stockes que son nom dans la
base, et affiche l'image du serveur.

Je trouve ça un peu fou de vouloir stocker l'image en base (à moins
d'avoir de sérieuses raisons de vouloir la protéger) alors qu'il est si
simple de la copier dans un répertoire.

--
Réseau IRC Francophone: http://www.zeolia.net
Aide et astuces webmasters : http://www.c-p-f.org
Communauté Francophone sur les Eggdrops: http://www.eggdrop.fr
SAM
Le #22066671
Le 10/15/08 6:08 PM, J-F Portala a écrit :
Bonjour et merci de votre aide.

J'ai oublié de vous dire que le tout fonctionnait sur un intranet.
Les images sont stockées sur le serveur.



On lit donc "serveur" (Intra ou Exta = même combat)
et ... adiou le "local"

A partir des postes distants connectés à l'intranet, je souhaiterais
afficher l'image dont l'emplacement est enregistré dans la base de données,



Il n'y a donc pas de problème à ce niveau
(l'image est bien stockée dans un dossier auquel le serveur a accès ?)

Mais la premiere partie consiste à créer la table des "articles" avec les
caractéristiques de l'article et l'emplacement de sa photo.
J'ai donc créé un formulaire dans lequel j'ai utilisé un champ input
type="file" qui génère un bouton parcourir.



Normalement ça "parcourt" le DD du poste qui a affiché le formulaire.

J'ai essayé d'afficher en javascript le contenue de la variable mais je n'ai
que le nom du fichier.



C'est normal, le JS s'interdit toute manipulation relative à la machine
du visiteur et le fichier est *sur* cette machine, donc il ne donnera
pas le chemin de ce fichier.
(tant qu'on n'est pas en local (protocole file:) et qu'on n'utilise pas
un vieux brouteur (IE5 ou 6, Firefox 1.5 ou 2)).

Si le chemin est impossible à récupérer, cela veut dire qu'il faut que je
stocke l'emplacement du dossier contenant les images en "dur" dans mon
application et que je colle au fichier dans la base de données le chemin.



Il faut donc uploader l'image sur le serveur qui va la stocker dans un
de ses dossiers et en même temps stocker en BdD le chemin de cette photo
sur le serveur, et enfin on fait afficher l'image à partir du serveur.

L'ensemble de cette(ces) opération(s) peut se faire en Ajax (JS + PHP)
sans avoir à recharger toute la page ou tout le formulaire.

Je pensais travailler en stockant uniquement les chemins des images, sans
enregistrer les images sous forme de blob.



M'enfin !
- ces blobs c'est rien que des trucs pour bien fatiguer sa BdD, non?
- c'est-y pas plus simple de ranger la photo qque part
et de ne stocker que son adresse ?


Je conviens que ma description initiale n'etait pas assez précise. J'en suis
désolé.



à part le coup du blob, on avait bien saisi.
(vouloir afficher une image du DD du visiteur via JS)


Généralement, lors de la production d'un article sur un réseau, on a à
côté un bouton [Visualiser] pour vérifier si la mise en forme est OK,
on profite de cette 'visualisation' pour faire afficher la photo qui a
été uploadée.


--
sm
Patrick Mevzek
Le #22066651
Le Thu, 16 Oct 2008 15:06:28 +0200, SAM a écrit:
Je pensais travailler en stockant uniquement les chemins des images, sans
enregistrer les images sous forme de blob.



M'enfin !
- ces blobs c'est rien que des trucs pour bien fatiguer sa BdD, non?
- c'est-y pas plus simple de ranger la photo qque part
et de ne stocker que son adresse ?



Les deux techniques ont chacune des avantages et des inconvénients, il n'y
a pas une seule bonne solution dans 100% des cas, cela dépend des
circonstances.

Rapidement, à l'avantage de tout stocker dans la base de données, on a
notamment :

- simplification des sauvegardes (tout est au même endroit, pas d'oubli
possible)

- atomicité de l'opération gérée par la base de données, et donc garantie
normalement : sinon le couple (sauvegarde en base de données, sauvegarde
dans le système de fichiers) doit être géré à la main pour toutes les
erreurs qui surviennent dans l'une des deux sous-étapes.

- intégrité référentielle garantie (sinon que se passe-t-il quand on
efface une image du disque mais pas l'entrée dans la base ? ou
réciproquement ?)


Mais cette discussion est davantage en charte sur fr.comp.applications.sgbd
et on peut trouver déjà beaucoup d'informations sur le net comparant les
deux.

--
Patrick Mevzek . . . . . . . . . . . . . . Dot and Co
J. Trotoux
Le #22066641
Pierre Goiffon a écrit :
SAM wrote:
je voudrais dans un formulaire recupérer l'emplacement d'une image et
la stocker dans une base de données.
Pour cela j'utilise input file, qui me permet de parcourir le disque
pour trouver l'emplacement.



Afficher l'image en simultané par Javascript
ne sera possible qu'en "local",
et encore ...



Oui et encore ! :)

Je n'ai plus la ref sous la main et pas assez de temps mes excuses, mais
nous utilisons cette technique dans notre application pour prévisualiser
l'image sélectionnée dans le input file. A partir de certaines versions
de navigateur, on ne pouvait plus aller lire le contenu complet du input
file.



L'ajax (jquery entre autre) permet de valider un formulaire en arrière
plan, sans recharger la page.
Ainsi, l'image est uploadée en arrière plan, stockée côté serveur, on
récupère son chemin, et on l'affiche en js.
Cela ne pose pas de souci. (voir ajaxform de jquery de mémoire). Testé
sous de nombreux navigateurs.
Julien
Publicité
Poster une réponse
Anonyme