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 : 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
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