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

4D Discussion :

Stocker un fichier PDF d'un poste en local vers un serveur


Sujet :

4D

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    23
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 23
    Points : 18
    Points
    18
    Par défaut Stocker un fichier PDF d'un poste en local vers un serveur
    Bonjour,

    j'ai un petit problème. je travaille à l'heure actuelle sur la refonte d'une application. le travail a été effectué en 4d v11. tout se passe par web, il n'y a que le paramétrage de certaines tables qui se fera via un client 4D.

    mon problème est le suivant :

    - ma base 4d sera hébergé sur un serveur virtuel pc.
    - mes utilisateurs se connecteront via firefox à cette base. unique du web.
    - Ils doivent pouvoir ajouter des pièces jointes (statuts des associations).

    j'arrive à uploader les pièces jointes en pdf, je fais un ENVOYER BLOB HTML(piecejointe;"application/pdf") => ce qui permet à l'utilisateur soit de l'ouvrir sur son navigateur, soit de l'enregistrer chez lui.

    hors la pièce jointe viendra déjà de son poste, et ce que j'aimerai c'est pouvoir la stocker sur le serveur en format pdf dans un dossier piece_jointe. là est tout mon problème car je ne sais pas dire à 4d d'ecrire sur le disque du serveur.

    ces pièces jointes doivent être accessible à tous les utilisateurs de n'importe quel poste. !!!!

    merci d'avance pour les conseils.

  2. #2
    Membre confirmé Avatar de ZeFiF
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Octobre 2008
    Messages
    303
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 303
    Points : 486
    Points
    486
    Par défaut
    je dois être fatigué, je vois pas bien où est le problème...
    est ce que tu peux reformuler ta question ?

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    23
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 23
    Points : 18
    Points
    18
    Par défaut
    je voudrai écrire sur le serveur mon fichier pdf et non pas sur mon poste en local c'est tout

    je sais le faire pour les images mais pas pour le pdf !!!!

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Février 2006
    Messages
    74
    Détails du profil
    Informations personnelles :
    Localisation : France, Vosges (Lorraine)

    Informations forums :
    Inscription : Février 2006
    Messages : 74
    Points : 84
    Points
    84
    Par défaut
    Si je comprends bien, tu veux que les utilisateurs choisissent un fichier sur leur disque, et l'envoient sur le serveur qui le stocke dans un dossier ?

  5. #5
    Membre confirmé Avatar de ZeFiF
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Octobre 2008
    Messages
    303
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 303
    Points : 486
    Points
    486
    Par défaut
    en décodant ta réponse,
    je suppose que tu stockes les images dans le fichier .4DD de ton application.
    Ce faisant elles sont accessibles à chaque 4D client.

    Tu peux faire la même chose avec un pdf, il suffit de le stocker dans un champ blob.

    Ceci dit, pour les images comme pour les pdf ce n'est pas mon humble avis la bonne approche.
    Si tu fais ça ton fichier .4DD va grossir démesurément.
    Avec un peu plus d'huile de coude, je te suggère de jeter un coup sur les commandes ftp des internet commands.
    Les fichiers seront ainsi stockés sur un serveur ftp (ça peut être la même machine que 4D serveur) et accessibles à tous. Tout client (4D ou autre) confondus...

    hth

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    23
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 23
    Points : 18
    Points
    18
    Par défaut
    @ antoine : oui tu as compris ce que j'ai voulu dire

    @ zefif : effectivement normalement il m'a ete demandé de stocker mes pièces jointes dans la base 4D ce qui me plait moyennement voilà pourquoi j'aimerai plutôt stocker le fichier dans un dossier à côté de la structure et stocker dans les données juste le nom de ma pièces jointes (chose que je sais faire pour le nom )

    en fait au départ j'avais monter mon code de manière à créer une image et une imagette stockée toutes deux hors de la base. sur ma page html je pouvais ensuite faire un lien sur l'imagette et ouvrir via une ligthbox ma galerie de pièce jointes sous forme d'image. maintenant il s'avère que le client se sert de ces pièces jointes pour faire des recherche. du coup tout ce que j'ai monté ne fonctionne plus. et j'aurais aimé pouvoir conserver mon travail en leur donnant l'accès à leur pdf.

    euh j'espère que j'ai été un peu plus claire bien que tes explication Zefif m'est aidé. je vais quand même creuser du côté ftp

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Février 2006
    Messages
    74
    Détails du profil
    Informations personnelles :
    Localisation : France, Vosges (Lorraine)

    Informations forums :
    Inscription : Février 2006
    Messages : 74
    Points : 84
    Points
    84
    Par défaut
    Citation Envoyé par Ptite_Tigresse Voir le message
    @ antoine : oui tu as compris ce que j'ai voulu dire
    Alors tu dois utiliser un formulaire HTML déclaré avec enctype="multipart/form-data" et avec un input de type="file".

    Dans 4D, tu dois d'abord déclarer une variable blob dans COMPILER_WEB (wbFile par ex).
    Dans la méthode 4DACTION exécutée à la validation du formulaire, tu récupères directement le blob.
    Mais ce blob contient également des infos qu'il faut séparer du "contenu" réel du blob, le nom du fichier entre autre.
    Pour faire ça il te faut une méthode qui extrait ces données par un examen bit à bit de l'en-tête du blob.
    Or cette méthode d'extraction n'est pas la même suivant que ta base est unicode ou non.
    Si ta base est native v11, elle est unicode, auquel cas la méthode (wbUpLoad chez moi) est du genre (sur Mac) :


    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
    C_POINTEUR($1)
    C_TEXTE($0;$txt)
    C_ENTIER LONG($i;$k)
      ` $1 texte unicode reçu (wbfile)
      ` $2 blob
      ` $0 retourne le filename
     
    $txt:=Convertir vers texte($1->;"macintosh")
      `l'en-tête est dans les 1000 premiers car du blob :
    $txt:=Sous chaine($txt;1;1000)
    $txt:=Remplacer chaine($txt;Caractere(10);"")  ` enlever les LF
      `On récupère le nom du fichier
    $k:=Position("filename=";$txt)
    $0:=""
    $i:=$k+10
    Repeter 
    	$0:=$0+$txt[[$i]]
    	$i:=$i+1
    Jusque ($txt[[$i]]=Caractere(34))
      `On se place au début du fichier
    $k:=Position(Caractere(13)+Caractere(13);$txt)
    SUPPRIMER DANS BLOB($1->;0;$k+4)
    Tu récupères le nom du fichier ainsi :
    $FileName:=wbUpLoad (->wbfile)
    et wbFile ne contient maintenant que le fichier, tu peux le déposer sur disque avec BLOB VERS DOCUMENT.

    Attention, les fichiers "uploadés" perdent souvent leur signatures sur Mac, il faut les ré-attribuer à la main.
    Je fais ça avec un truc du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Au cas ou 
    	: (($FileName ="@.jpg")*|*($FileName ="@.jpeg"))
    		CHANGER TYPE DOCUMENT($chemin;"JPEG")
     
    	: (($FileName="@.pdf"))
    		CHANGER TYPE DOCUMENT($chemin;"PDF ")
     
    etc.

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    23
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 23
    Points : 18
    Points
    18
    Par défaut
    @antoine : bon ben je vais aller tester ça et je reviendrais vous dire .
    en tout cas merci beaucoup et en plus avec les explications je me rends comptes que je suis partie sur la bonne direction de moi même



    edit : Bon ben voilà j'ai réussi avec vos réponses. je stocke maintenant mes fichier pdf directement sur mon serveur et sans surcharger ma base

    merci

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 23/02/2011, 21h02
  2. Copie d'un fichier local vers un serveur distant
    Par Contact2012 dans le forum VBScript
    Réponses: 4
    Dernier message: 20/07/2010, 14h38
  3. Réponses: 3
    Dernier message: 22/12/2009, 15h00
  4. Réponses: 1
    Dernier message: 14/11/2008, 15h58
  5. Réponses: 4
    Dernier message: 06/09/2006, 18h57

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