Upload et enregistrement du nom du fichier dans une bdd
Bonjour,
je travaille avec XMLRAD 2005 + Delphi + SQL server
Actuellement, je cherche simplement à permettre l'upload d'un fichier au travers un formulaire, à enregistrer ce fichier sur le disque, et à insérer le nom de ce fichier dans ma base.
Voici ce que j'ai fini par faire, me rendant compte que l'enctype de la balise <form> posait quelques problèmes pour l'enregistrement du nom dans la base (j'avais un enregistrement vide).
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45
|
<script language="javascript"><![CDATA[function Upload() {
var File = GetFieldValue('UploadForm', 'FileToAttach');
if (File != '')
{
document.body.style.cursor = 'wait';
SubmitForm('UploadForm', 'ACTION', XMLC_BaseHRef + 'XMLC_UploadFile');
//SubmitForm('ProcessUpload');
SetField ('ProcessUpload', 'FileToImport', File);
SubmitForm('ProcessUpload', 'ACTION', XMLC_BaseHRef + 'ImportFileName');
}
}]]>
<form action="{/document/Aliases/MADLL}XMLC_UploadFile" method="POST" name="UploadForm" enctype="multipart/form-data">
<input type="hidden" name="NextAction" value="Import"/>
<input type="hidden" name="XMLC_RequestID" value="{/document/Params/XMLC_RequestID}"/>
<table border="0" width="100%">
<tr>
<td width="30%">
<xsl:value-of select="/document/Locales/CalendarFieldName"/>
</td>
<td width="70%">
<input type="file" name="FileToAttach" style="width:100%"/>
</td>
</tr>
</table>
<center>
<table>
<tr>
<td>
<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>
</td>
</tr>
</table>
</center>
</form>
<form action="{/document/Aliases/MADLL}ImportFileName" method="POST" name="ProcessUpload">
<input type="hidden" name="NextAction" value="Import"/>
<input type="hidden" name="FileToImport" />
</form> |
Le problème étant ici que :
si j'enlève de ma fonction le submit de ProcessUpload, j'ai mon fichier uploadé...mais rien dans ma base (un fichier vide).
Si je le laisse, j'ai bien mon nom enregistré dans ma base, mais le fichier n'est pas sauvegardé dans son répertoire :-(
Une idée?
Merci par avance!
Johan