La liste que te renvoie parseRequest contient des FileItem, cf http://commons.apache.org/fileupload/apidocs/org/apache/comm(...)
Tu n'a plus ensuite qu'à utiliser la méthode write de FileItem pour écrire les données dans un fichier. Tu peux aussi récupérer directement un OutputStream si tu veux faire autre chose que d'enregistrer dans un fichier.
Pense aussi à faire le delete pour libérer rapidement les éventuels fichiers temporaires.
try {
// Create a factory for disk-based file items
DiskFileItemFactory factory = new DiskFileItemFactory();
// Set factory constraints
factory.setSizeThreshold(1024);
factory.setRepository(new File("..\\temp\\"));
// Create a new file upload handler
ServletFileUpload upload = new ServletFileUpload(factory);
// Set overall request size constraint
upload.setSizeMax(10000000);
// Parse the request
List items=null ;
if ( upload.isMultipartContent(request) ) {
items = upload.parseRequest(request);// Process the uploaded items
Iterator iter = items.iterator();
while (iter.hasNext()) {
FileItem item = (FileItem) iter.next();
item.write(new File(ImgDir+item.getName())) ;
}
# commons.fileupload
Posté par wismerhill . Évalué à 3.
http://commons.apache.org/fileupload/
C'est fait pour simplifier ce genre de tâche.
[^] # Re: commons.fileupload
Posté par kowalsky . Évalué à 2.
j'upload une image et ensuite comme je l'enregistre...
Parce que je recupere un objet, mais comment l'ecrire !
FileItemFactory factory = new DiskFileItemFactory() ;
ServletFileUpload upload = new ServletFileUpload(factory) ;
upload.setSizeMax(9000) ;
List items = upload.parseRequest(request) ;
si j'ecris items.get(0), l'image n'est pas "valide"...
[^] # Re: commons.fileupload
Posté par wismerhill . Évalué à 1.
http://commons.apache.org/fileupload/apidocs/org/apache/comm(...)
Tu n'a plus ensuite qu'à utiliser la méthode write de FileItem pour écrire les données dans un fichier. Tu peux aussi récupérer directement un OutputStream si tu veux faire autre chose que d'enregistrer dans un fichier.
Pense aussi à faire le delete pour libérer rapidement les éventuels fichiers temporaires.
D'une manière générale, lis la javadoc http://commons.apache.org/fileupload/apidocs/index.html elle contient généralement la majorité des informations nécessaires à une bonne utilisation de l'API.
[^] # Re: commons.fileupload
Posté par kowalsky . Évalué à 2.
Encore Merci !
[^] # Re: commons.fileupload
Posté par kowalsky . Évalué à 2.
import java.io.PrintWriter ;
import javax.servlet.ServletException ;
import javax.servlet.http.HttpServlet ;
import javax.servlet.http.HttpServletRequest ;
import javax.servlet.http.HttpServletResponse ;
import java.util.List ;
import java.util.Iterator ;
import org.apache.commons.fileupload.* ;
import org.apache.commons.fileupload.disk.DiskFileItemFactory ;
import org.apache.commons.fileupload.servlet.ServletFileUpload ;
//import java.awt.image.BufferedImage ;
//import javax.imageio.ImageIO ;
import java.io.IOException ;
import java.io.File ;
public class upload extends HttpServlet {
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8") ;
response.setHeader("Pragma", "no-cache") ;
response.setHeader("Cache-Control", "no-store") ;
response.setHeader("Expires", "0") ;
PrintWriter web = response.getWriter();
String ImgDir="..\\temp\\" ;
try {
// Create a factory for disk-based file items
DiskFileItemFactory factory = new DiskFileItemFactory();
// Set factory constraints
factory.setSizeThreshold(1024);
factory.setRepository(new File("..\\temp\\"));
// Create a new file upload handler
ServletFileUpload upload = new ServletFileUpload(factory);
// Set overall request size constraint
upload.setSizeMax(10000000);
// Parse the request
List items=null ;
if ( upload.isMultipartContent(request) ) {
items = upload.parseRequest(request);// Process the uploaded items
Iterator iter = items.iterator();
while (iter.hasNext()) {
FileItem item = (FileItem) iter.next();
item.write(new File(ImgDir+item.getName())) ;
}
} else {
web.println( "Rien d'envoyé !" ) ;
}
} catch ( FileUploadException FUE ) {
web.println(FUE.toString()) ;
} catch ( Exception Exc ) {
web.println(Exc.toString()) ;
} finally {
web.close();
}
}
// <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code.">
/**
* Handles the HTTP
GET
method.* @param request servlet request
* @param response servlet response
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
}
/**
* Handles the HTTP
POST
method.* @param request servlet request
* @param response servlet response
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
}
/**
* Returns a short description of the servlet.
*/
public String getServletInfo() {
return "Short description";
}// </editor-fold>
}
Je te remercie, ça marche bien.
# POSTLET
Posté par André Rodier . Évalué à 1.
[^] # Re: POSTLET
Posté par Arnaldur . Évalué à 0.
[^] # Re: POSTLET
Posté par kowalsky . Évalué à 2.
Mais encore merci !
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.