PC SOFT

FOROS PROFESIONALES
WINDEVWEBDEV y WINDEV Mobile

Inicio → WEBDEV 2024 → comment réafficher les fichiers du champ upload
comment réafficher les fichiers du champ upload
Iniciado por Amy BEN, 19,jul. 2024 23:34 - 3 respuestas
Miembro registrado
110 mensajes
Publicado el 19,julio 2024 - 23:34
Bonjour à tous ;

d'habitude j'utilise windev et windev mobile, et là j'ai une première expérience avec webdev 2024,
j'ai utiliser le champ upload pour sauvegarder les documents d'une entreprise en pièce jointe, et j'ai crée une table dans ma base pour : idfichier, nom, chemin, identreprise - et là juque là tout est Ok je télécharge les fichiers et le tableau se remplit (la table mémoire est en mode navigateur sinon ça ne se remplis pas) et le soucis, c'est que maintenant quand je veux enregistrer la table mémoire dans ma base je ne peux pas, car le code d'enregistrement est en mode serveur !

bref je galère et ça me bloque, si quelqu'un peut m'expliquer comment je peux faire ça, de façon à ce que quand je clique sur le bouton dans la ligne de l'entreprise je peux revoir les pièces jointes uploadé.

cordialement ;
merci beaucoup d'avance.
Miembro registrado
110 mensajes
Publicado el 20,julio 2024 - 02:45
:( Up Up Up
Publicado el 22,julio 2024 - 08:56
Après mûre réflexion, Amy BEN a écrit :
Bonjour à tous ;

d'habitude j'utilise windev et windev mobile, et là j'ai une première
expérience avec webdev 2024, j'ai utiliser le champ upload pour sauvegarder
les documents d'une entreprise en pièce jointe, et j'ai crée une table dans
ma base pour : idfichier, nom, chemin, identreprise - et là juque là tout
est Ok je télécharge les fichiers et le tableau se remplit (la table mémoire
est en mode navigateur sinon ça ne se remplis pas) et le soucis, c'est que
maintenant quand je veux enregistrer la table mémoire dans ma base je ne peux
pas, car le code d'enregistrement est en mode serveur !

bref je galère et ça me bloque, si quelqu'un peut m'expliquer comment je peux
faire ça, de façon à ce que quand je clique sur le bouton dans la ligne de
l'entreprise je peux revoir les pièces jointes uploadé.

cordialement ;
merci beaucoup d'avance.


Bonjour
je suppose que tu parles du champs multi upload; celui qui permet de
télécharger plusieurs fichiers et faire du glisser déposer ?
Je l'ai toujours trouvé d'un mode de fonctionnement obscur et la
plupart du temps j'utilise l'ancien (mono fichier) car la plupart du
temps c'est un seul fichier que l'on attend.
Donc je vais plonger dans les qq exemples que je dois avoir.

Donc 1ère bizarrerie, c'est dans le bouton Ajouter un fichier que le
boulot serveur principal se fait.
et non pas dans le Envoyer au serveur.
Dans le bouton Envoyer au serveur, on a effectivement du code Nav pour
executer le btn_addfile avec la fn Uploadlance

<code>
// Evite de traiter une liste vide
SI ZR_Fichiers..Vide ALORS
RETOUR
FIN

// Masquage du bouton de suppression de chaque fichier
POUR TOUTE LIGNE DE ZR_Fichiers
ATT_Suppr = Faux

FIN
SI Lib_Nombrefichier <> SAI_FICHIERMAX ALORS
UploadLance(BTN_ADDFILE)
SINON
ToastAffiche("nombre maximum de fichier atteint")
FIN

</code>


et un code de ce btn_addfile
(je te laisse enlever mes codes spécifiques de ça)


(rmq : mon système est dans une popup)
<code>
// Insérer ici le code de traitement des fichiers uploadés
// Exemple de code :
// Copie le fichier uploadé dans un répertoire spécifique
calcul est un entier

nomfichier,wchemin est une chaîne
taillefic est un entier
wchemin=ComplèteRep(CurrentRep)

SI PAS fRépertoireExiste(wchemin) ALORS fRepCrée(wchemin)

SI ZR_FICHIERUPLOADE.Occurrence() = nombredefichiermax ALORS
ToastAffiche("nombre maximum de fichier atteint")
RETOUR
SINON SI ZR_FICHIERUPLOADE.Occurrence(toTotal) <> nombredefichiermax ET
MoiMême.Occurrence > 0 ET ZR_FICHIERUPLOADE.Occurrence() > 0 ALORS
calcul = nombredefichiermax-ZR_FICHIERUPLOADE.Occurrence(toTotal)
SI calcul > MoiMême.Occurrence ALORS
calcul = MoiMême.Occurrence
FIN
SI calcul = 1 ALORS
ToastAffiche(calcul+ " fichier a été ajouté -- La limite est de
"+nombredefichiermax)
SINON
ToastAffiche(calcul+ " fichiers ont été ajoutés -- La limite est de
"+nombredefichiermax)
FIN

SINON
calcul = MoiMême.Occurrence
FIN


POUR i = 1 _À_ calcul
//nomfichier = UploadNomFichier(moimeme,faux)
nomfichier=UploadCopieFichier(MoiMême, wchemin, "", i)
ZoneRépétéeAjouteLigne(ZR_FICHIERUPLOADE,nomfichier)
ZR_FICHIERUPLOADE..Visible = Vrai
Gr_LIBNOMBRE..Visible = Vrai

FIN
Lib_Nombrefichier = ZR_FICHIERUPLOADE.Occurrence(toTotal)

SELON Val(Lib_Nombrefichier..Valeur)
CAS 0
LIB_IMAGE = "élément"

CAS > 1
LIB_IMAGE = "éléments"
AUTRE CAS
LIB_IMAGE = "élément"
FIN
cmd est une chaîne
wch est une chaîne
CODE_RATT est une chaîne
wUrlRelative,wrepRelatif est une chaîne
wext est une chaîne
wfils est un entier // id du passager
SI Position(CurrentRep,"\RESSOURCES")>0 ALORS
CODE_RATT = "RESSOURCE"
wfils = 0
SINON
// je suis dans un rep passager; donc je dois récupérer son id attendu
que les rep sont PASSAGER_123456
CODE_RATT = "PASSAGER"
wch = ExtraitChaîne(CurrentRep,2,"PASSAGER_")
// est ce la fin du rep ou dedans ?
SI Position(wch,"\")>0 ALORS wch=ExtraitChaîne(wch,1,"\") // y'en a
derrière, donc je l'enlève
wfils=Val(wch) //là il ne doit plus me rester que le n°
FIN
wrepRelatif = ExtraitChaîne(CurrentRep,2,repDwnload) // ne garde que
la partie relative
wrepRelatif=ComplèteRep(wrepRelatif)
wrepRelatif = Remplace(wrepRelatif,"\","/")

POUR TOUTE LIGNE DE ZR_FICHIERUPLOADE
// on crée la fiche
nomfic est une chaîne=ZR_FICHIERUPLOADE.aNomFichier_ics
wext=fExtraitChemin(nomfichier,fExtension)
wUrlRelative=wrepRelatif+nomfic
PDO_TITRE = "document "+nomfic
cmd = "insert into people_document
(pdo_where,pdo_datetime,ope_id,pdo_author,pdo_code_ratt,ppl_id,ppl_id_fils,pdo_fichier,pdo_wfile,pdo_titre,pdo_ext)
values('INTERNAL',sysdate(),"+gOpe_Id+","
cmd+=QuoteV(gInternaute) // pdo_author,
cmd+=QuoteV(CODE_RATT) // pdo_code_ratt,
cmd+=sessionstru.PPL_ID_COACH+","+wfils+"," // ppl_id,ppl_id_fils,
cmd+=Quote(nomfic)+","+Quote(wUrlRelative)+"," //
pdo_fichier,pdo_wfile
cmd+=Quote(PDO_TITRE)+","
cmd+=Quote(wext)+")"
ExecInsert(cmd)
FIN

LoadRep()
PopupFerme() // je referme ma popup


</code>


comme tu le vois dans la partie de lecture de la ZR, je mémorise les
noms des fichiers que je viens de transférer dans une base (sql notif
sur mysql mais tu transposeras)

Je ne te redonne pas les codes navigateur de ce btn envoyer, à priori
ils ne bougent pas par rapport à ce que donne l'assistant
Miembro registrado
110 mensajes
Publicado el 25,julio 2024 - 03:31
Roumegou a écrit :
Après mûre réflexion, Amy BEN a écrit :
Bonjour à tous ;

d'habitude j'utilise windev et windev mobile, et là j'ai une première
expérience avec webdev 2024, j'ai utiliser le champ upload pour sauvegarder
les documents d'une entreprise en pièce jointe, et j'ai crée une table dans
ma base pour : idfichier, nom, chemin, identreprise - et là juque là tout
est Ok je télécharge les fichiers et le tableau se remplit (la table mémoire
est en mode navigateur sinon ça ne se remplis pas) et le soucis, c'est que
maintenant quand je veux enregistrer la table mémoire dans ma base je ne peux
pas, car le code d'enregistrement est en mode serveur !

bref je galère et ça me bloque, si quelqu'un peut m'expliquer comment je peux
faire ça, de façon à ce que quand je clique sur le bouton dans la ligne de
l'entreprise je peux revoir les pièces jointes uploadé.

cordialement ;
merci beaucoup d'avance.


Bonjour
je suppose que tu parles du champs multi upload; celui qui permet de
télécharger plusieurs fichiers et faire du glisser déposer ?
Je l'ai toujours trouvé d'un mode de fonctionnement obscur et la
plupart du temps j'utilise l'ancien (mono fichier) car la plupart du
temps c'est un seul fichier que l'on attend.
Donc je vais plonger dans les qq exemples que je dois avoir.

Donc 1ère bizarrerie, c'est dans le bouton Ajouter un fichier que le
boulot serveur principal se fait.
et non pas dans le Envoyer au serveur.
Dans le bouton Envoyer au serveur, on a effectivement du code Nav pour
executer le btn_addfile avec la fn Uploadlance

<code>
// Evite de traiter une liste vide
SI ZR_Fichiers..Vide ALORS
RETOUR
FIN

// Masquage du bouton de suppression de chaque fichier
POUR TOUTE LIGNE DE ZR_Fichiers
ATT_Suppr = Faux

FIN
SI Lib_Nombrefichier <> SAI_FICHIERMAX ALORS
UploadLance(BTN_ADDFILE)
SINON
ToastAffiche("nombre maximum de fichier atteint")
FIN

</code>


et un code de ce btn_addfile
(je te laisse enlever mes codes spécifiques de ça)


(rmq : mon système est dans une popup)
<code>
// Insérer ici le code de traitement des fichiers uploadés
// Exemple de code :
// Copie le fichier uploadé dans un répertoire spécifique
calcul est un entier

nomfichier,wchemin est une chaîne
taillefic est un entier
wchemin=ComplèteRep(CurrentRep)

SI PAS fRépertoireExiste(wchemin) ALORS fRepCrée(wchemin)

SI ZR_FICHIERUPLOADE.Occurrence() = nombredefichiermax ALORS
ToastAffiche("nombre maximum de fichier atteint")
RETOUR
SINON SI ZR_FICHIERUPLOADE.Occurrence(toTotal) <> nombredefichiermax ET
MoiMême.Occurrence > 0 ET ZR_FICHIERUPLOADE.Occurrence() > 0 ALORS
calcul = nombredefichiermax-ZR_FICHIERUPLOADE.Occurrence(toTotal)
SI calcul > MoiMême.Occurrence ALORS
calcul = MoiMême.Occurrence
FIN
SI calcul = 1 ALORS
ToastAffiche(calcul+ " fichier a été ajouté -- La limite est de
"+nombredefichiermax)
SINON
ToastAffiche(calcul+ " fichiers ont été ajoutés -- La limite est de
"+nombredefichiermax)
FIN

SINON
calcul = MoiMême.Occurrence
FIN


POUR i = 1 _À_ calcul
//nomfichier = UploadNomFichier(moimeme,faux)
nomfichier=UploadCopieFichier(MoiMême, wchemin, "", i)
ZoneRépétéeAjouteLigne(ZR_FICHIERUPLOADE,nomfichier)
ZR_FICHIERUPLOADE..Visible = Vrai
Gr_LIBNOMBRE..Visible = Vrai

FIN
Lib_Nombrefichier = ZR_FICHIERUPLOADE.Occurrence(toTotal)

SELON Val(Lib_Nombrefichier..Valeur)
CAS 0
LIB_IMAGE = "élément"

CAS > 1
LIB_IMAGE = "éléments"
AUTRE CAS
LIB_IMAGE = "élément"
FIN
cmd est une chaîne
wch est une chaîne
CODE_RATT est une chaîne
wUrlRelative,wrepRelatif est une chaîne
wext est une chaîne
wfils est un entier // id du passager
SI Position(CurrentRep,"\RESSOURCES")>0 ALORS
CODE_RATT = "RESSOURCE"
wfils = 0
SINON
// je suis dans un rep passager; donc je dois récupérer son id attendu
que les rep sont PASSAGER_123456
CODE_RATT = "PASSAGER"
wch = ExtraitChaîne(CurrentRep,2,"PASSAGER_")
// est ce la fin du rep ou dedans ?
SI Position(wch,"\")>0 ALORS wch=ExtraitChaîne(wch,1,"\") // y'en a
derrière, donc je l'enlève
wfils=Val(wch) //là il ne doit plus me rester que le n°
FIN
wrepRelatif = ExtraitChaîne(CurrentRep,2,repDwnload) // ne garde que
la partie relative
wrepRelatif=ComplèteRep(wrepRelatif)
wrepRelatif = Remplace(wrepRelatif,"\","/")

POUR TOUTE LIGNE DE ZR_FICHIERUPLOADE
// on crée la fiche
nomfic est une chaîne=ZR_FICHIERUPLOADE.aNomFichier_ics
wext=fExtraitChemin(nomfichier,fExtension)
wUrlRelative=wrepRelatif+nomfic
PDO_TITRE = "document "+nomfic
cmd = "insert into people_document
(pdo_where,pdo_datetime,ope_id,pdo_author,pdo_code_ratt,ppl_id,ppl_id_fils,pdo_fichier,pdo_wfile,pdo_titre,pdo_ext)
values('INTERNAL',sysdate(),"+gOpe_Id+","
cmd+=QuoteV(gInternaute) // pdo_author,
cmd+=QuoteV(CODE_RATT) // pdo_code_ratt,
cmd+=sessionstru.PPL_ID_COACH+","+wfils+"," // ppl_id,ppl_id_fils,
cmd+=Quote(nomfic)+","+Quote(wUrlRelative)+"," //
pdo_fichier,pdo_wfile
cmd+=Quote(PDO_TITRE)+","
cmd+=Quote(wext)+")"
ExecInsert(cmd)
FIN

LoadRep()
PopupFerme() // je referme ma popup


</code>


comme tu le vois dans la partie de lecture de la ZR, je mémorise les
noms des fichiers que je viens de transférer dans une base (sql notif
sur mysql mais tu transposeras)

Je ne te redonne pas les codes navigateur de ce btn envoyer, à priori
ils ne bougent pas par rapport à ce que donne l'assistant


Bonjour Romegou

merci beaucoup pour ta réponse, je vais tester et revenir vers toi,
c'est vrai que le champ est assez obscure

bien cordialement