Bonjour,

Je cherche à récupérer un fichier passé par le champ "file" d'un formulaire.

J'ai suivi le tutoriel officiel (méthode 2, recommandée), mais il est très vague : http://struts.apache.org/2.x/docs/ho...oad-files.html

Notamment concernant l'écriture de la classe Action.

J'ai codé le formulaire. Le champ fichier est "myDoc".
J'ai codé l'Action dont voici le code :

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
46
47
48
49
package org.ecoscope.icame.strutsactions;
 
import org.apache.struts2.components.File;
import com.sun.xml.internal.messaging.saaj.packaging.mime.internet.ContentType;
 
public class Upload {
	private String resultStatus = null;
	private File myDoc = null;
	private ContentType myDocContentType = null;
	private String myDocFileName = null;
 
	public String execute() throws Exception {
		setResultStatus("Succès ! : "+myDoc);
		return "success";
	}
 
	//Getters & setters
	public File getMyDoc() {
		return myDoc;
	}
 
	public void setMyDoc(File myDoc) {
		this.myDoc = myDoc;
	}
 
	public ContentType getMyDocContentType() {
		return myDocContentType;
	}
 
	public void setMyDocContentType(ContentType myDocContentType) {
		this.myDocContentType = myDocContentType;
	}
 
	public String getMyDocFileName() {
		return myDocFileName;
	}
 
	public void setMyDocFileName(String myDocFileName) {
		this.myDocFileName = myDocFileName;
	}
 
	public String getResultStatus() {
		return resultStatus;
	}
 
	public void setResultStatus(String resultStatus) {
		this.resultStatus = resultStatus;
	}
}
Au moment du submit, j'obtiens l'erreur : ERROR ParametersInterceptor:204 - ParametersInterceptor - [setParameters]: Unexpected Exception caught setting 'myDoc' on 'class org.ecoscope.icame.strutsactions.Upload: Error setting expression 'myDoc' with value '[Ljava.lang.String;@6d3ca2'

J'attéris sur la page "success", dont je pense que la méthode execute() est exécutée.

Curieusement, il semble vouloir mettre une chaine dans la propriété "myDoc" qui est un "File".

Questions :
- Où est le problème ?
- Pour le "File, j'ai importé "org.apache.struts2.components.File", mais ce n'est pas le seul type File proposé. Est-ce le bon ? (il y a aussi un java.io.File)

Merci de votre aide.
Pascal