[Servlet] Upload de fichier utilisant FileUpload de Apache
	
	
		Bonjour à tous voici le code de ma servlet
j'utilise NetBeans 5.5.1
	Code:
	
| 12
 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
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
 100
 101
 102
 103
 104
 105
 106
 107
 108
 109
 110
 111
 112
 113
 114
 
 | import java.io.*;
import java.util.Iterator;
import java.util.List;
 
import javax.servlet.*;
import javax.servlet.http.*;
import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.FileItemFactory;
import org.apache.commons.fileupload.FileUploadException;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;
 
/**
 *
 * @author sikro
 * @version
 */
public class NewServlet extends HttpServlet {
 
    /** Processes requests for both HTTP <code>GET</code> and <code>POST</code> methods.
     * @param request servlet request
     * @param response servlet response
     */
 
    protected void processRequest(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException, FileUploadException, Exception {
        // Check that we have a file upload request
        if (ServletFileUpload.isMultipartContent(request)){
            // Create a factory for disk-based file items
            FileItemFactory factory = new DiskFileItemFactory(4096,new File("maevatmp"));
 
            // Create a new file upload handler
            ServletFileUpload upload = new ServletFileUpload(factory);
 
            // Parse the request
            List /* FileItem */ items = upload.parseRequest(request);
 
            // Process the uploaded items
            Iterator iter = items.iterator();
            while (iter.hasNext()) {
                FileItem item = (FileItem) iter.next();
//                if (item.isFormField()) {
//                    processFormField(item);
//                } else {
//                    processUploadedFile(item);
//                }
                // Item information
//                if (!item.isFormField()) {
                String fieldName = item.getFieldName();
                String fileName = item.getName();
                String contentType = item.getContentType();
                boolean isInMemory = item.isInMemory();
                long sizeInBytes = item.getSize();
 
                if(!new File("maevatmp").exists()) new File("maevatmp").mkdirs();
                File uploadedFile = new File("maevatmp/"+fileName);
                item.write(uploadedFile);
 
//                }
            }
        }
    }
 
        // <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code.">
        /** Handles the HTTP <code>GET</code> method.
         * @param request servlet request
         * @param response servlet response
         */
        protected void doGet(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
            try {
                processRequest(request, response);
            } catch (ServletException ex) {
                ex.printStackTrace();
            } catch (FileUploadException ex) {
                ex.printStackTrace();
            } catch (IOException ex) {
                ex.printStackTrace();
            } catch (Exception ex) {
                ex.printStackTrace();
            }
        }
 
        /** Handles the HTTP <code>POST</code> method.
         * @param request servlet request
         * @param response servlet response
         */
//    protected void doPost(HttpServletRequest request, HttpServletResponse response)
//    throws ServletException, IOException {
//        processRequest(request, response);
//    }
 
        public void doPost(HttpServletRequest req, HttpServletResponse res)
        throws ServletException, IOException {
            try {
                processRequest(req,res);
            } catch (ServletException ex) {
                ex.printStackTrace();
            } catch (FileUploadException ex) {
                ex.printStackTrace();
            } catch (IOException ex) {
                ex.printStackTrace();
            } catch (Exception ex) {
                ex.printStackTrace();
            }
        }
 
        /** Returns a short description of the servlet.
         */
        public String getServletInfo() {
            return "Short description";
        }
        // </editor-fold>
    } | 
 j'ai récupéré ce code sur le site de apache :
http://commons.apache.org/fileupload/using.html
ma question est de savoir comment je peux tester une telle servlet..
j'aimerai intégrer des fonctions à une application permettant d'uploader des fichiers vers un serveur de fichier.
mes connaissances en servlet sont très très très basiques...
Il faut par ailleurs que je puisse authentifier l'utilisateur en Basic afin que la servlet puisse s'exécuter
merci d'avance