[PORTLET] Envoie fichier vers serveur
Bonjour a tous,
Je souhaite envoyer un fichier vers le serveur et lire le contenu.
Mais je ne veux pas sauver le fichier sur le serveur, je veux juste lire le flux de données.
Dans ma JSP,j'ai un INPUT de type FILE.
et dans le portlet.java dans la methode actionPerformed
j'ai le code suivant
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
| if( FORM_ACTION.equals(actionString) ) {
String s = "debut: ";
String fileName = request.getParameter(TEXT);
try {
FileInputStream is = new FileInputStream(fileName);
int ch;
while ((ch = is.read()) >= 0)
s+=ch;
is.close();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
sessionBean.setError(s); |
Mais l'exception FileNotFoundException est levé.
Quelqu'un pourrait m'aider ???
[RESOLU] [PORTLET] Envoie fichier vers serveur Répondre à la discussion
Je vois que ma question a laissé perplexe !!!
Donc j'y repond moi meme.
J'ai trouvé une une classe qui a partir de l'objet request permet de lire le fichier envoyé par le client.
Et cela sans le sauver sur le serveur.
Il suffi d'appeler dans la methode actionPerformed de portlet.java FileUpload.upload....
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 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78
|
import java.io.BufferedReader;
import java.io.Reader;
import java.security.Principal;
import java.util.Iterator;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.FileItemFactory;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;
import org.apache.commons.io.FilenameUtils;
public class FileUpload {
private static String editorNamespace = null;
private static String attachedFileName = null;
public static String upload(HttpServletRequest request){
System.out.println("Start Upload");
String output = null;
String fileName = null;
byte[] theFile = null;
String contentType = null;
String fieldName = null;
String completeFileName = null;
String authorName = "";
System.out.println("Check that we have a file upload request");
// Check that we have a file upload request
boolean isMultipart = ServletFileUpload.isMultipartContent(request);
if(isMultipart) System.out.println("is Multipart");
else System.out.println("is not Multipart");
System.out.println("Create a factory for disk-based file items");
// Create a factory for disk-based file items
FileItemFactory factory = new DiskFileItemFactory();
System.out.println("Create a new file upload handler");
// Create a new file upload handler
ServletFileUpload upload = new ServletFileUpload(factory);
System.out.println("Parse the request");
//Parse the request
try{
List items = upload.parseRequest(request);
// Process the uploaded items
Iterator iter = items.iterator();
while (iter.hasNext()) {
FileItem item = (FileItem) iter.next();
if (!item.isFormField()) {
theFile = item.get();
}
}
} catch(Exception e){
e.printStackTrace();
System.out.println("Exception");
}
String text = new String(theFile);
return text;
}
} |