Upload + récupérer le nom du fichier uploadé

Signaler
Messages postés
10840
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
-
Messages postés
10840
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
-
Salut,



bon...problème pas uniquement js, mais il y en a...donc, sait-on jamais ;-)

Voilà, je bosse sur e framework XMLRAD, pour ceux qui connaissent. J'ai
d'ailleurs posé ma question aussi sur le forum concerné, mais si
quelqu'un d'ici a une idée...

XMLRAD permet de travailler sur des fichiers XML, mis en forme avec des
fichiers XSL. Le travail côté serveur se fait avec une bdd SQL Server
et du delphi. Mais ça, on s'en fout à priori.

Le but est simple : je permets sur ma page de faire un upload de
fichier, et je voudrais aussi enregistrer le nom de ce fichier dans ma
base.

Etant donné que l'attribut enctype de ma balise form pose un problème
quant au nom du fichier (l'upload marche, pas l'insertion dans la base
: le nom est vide), je suis passé par un formulaire caché pour le nom
du fichier. Voilà en résumé le script :
















,












Upload();























Pour les fonctions js inconnues :

- SetField : permet d'attribuer une valeur au champ d'un formulaire.

- GetFieldValue : récupère la valeur d'un champ d'un formulaire.



Facile ;-)



Maintenant, ce qui se passe ici :



Si je lasse tel quel : l'upload n'est pas réalisé, mais j'ai bien le nom du fichier dans ma base.

Si je comment la ligne Process (File); dans la fonction Upload () j'ai alors mon fichier uploadé, et bien mis dans le bon répertoire, mais dans ma base, je n'ai rien...évidemment.



Une idée quelqu'un...?

Merci par avance :-)



Johan

1 réponse

Messages postés
10840
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
22
De la même manière, finalement, si je n'utilise que ce script js :






Code:, ----
<script type="text/javascript"><![CDATA[function Upload() {

var File = GetFieldValue('UploadForm', 'FileToAttach');

if (File != '')

{

SetField ('UploadForm', 'FileToImport', File);

document.body.style.cursor = 'wait';

SubmitForm('UploadForm', 'ACTION', XMLC_BaseHRef + 'XMLC_UploadFile');

SubmitForm('UploadForm', 'ACTION', XMLC_BaseHRef + 'ImportFileName');

}

}]]></script>




En ajoutant à mon formulaire de départ UploadForm un champ de type "hidden" se nommant "FileToImport" :






Code:, ----
<form action="{/document/Aliases/MADLL}ImportFileName" method="POST" name="UploadForm" enctype="multipart/form-data">

<table border="0" width="100%">

----,

<xsl:value-of
select=\"/document/Locales/CalendarFieldName\"/>

</td>




<center>


<xsl:call-template name="xslc:Button">

<xsl:with-param name="Caption">

<xsl:value-of
select="/document/Locales/ButtonValidCalendar"/>

</xsl:with-param>

<xsl:with-param
name="OnClick">Upload();</xsl:with-param>

</xsl:call-template>



</center>


</form>


</td> </tr></tbody>
</table>






en l'état : j'ai ma base qui est bien mise à jour, mais pas mon upload.


Si je commente cette ligne dans mon script js :






Code:, ----
//SubmitForm('UploadForm', 'ACTION', XMLC_BaseHRef + 'ImportFileName');







je n'ai que mon upload , ma base n'est pas mise à jour.








/code