Tulisan kali ini merupakan lanjutan dari tulisan sebelumnya, Upload file dengan menggunakan JSP-Servlet. Dimana kali ini saya akan memberikan contoh dalam melakukan upload lebih dari satu file secara bersamaan. Saya masih tetap menggunakan  library com.oreilly.servlet, namun saya tidak lagi menggunakan class MultipartRequest melainkan menggunakan MultipartParser. Langsung saja buat sebuah file index.jsp seperti berikut ini

<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
   "http://www.w3.org/TR/html4/loose.dtd">

<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>JSP Page</title>
    </head>
    <body>
        <form action="doUpload.do" method="post" enctype="MULTIPART/FORM-DATA">
            file 1 : <input type="FILE" name="file1"> <br>
            file 2 : <input type="FILE" name="file2"> <br>
            file 3 : <input type="FILE" name="file3"> <br>
            file 4 : <input type="FILE" name="file4"> <br>
            <input type="submit" value="upload">
        </form>
    </body>
</html>
 

Kemudian buat sebuah class UploadAction berikut

package com.maniakjava.action;

import com.oreilly.servlet.multipart.FilePart;
import com.oreilly.servlet.multipart.MultipartParser;
import com.oreilly.servlet.multipart.Part;
import java.io.File;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class UploadAction extends HttpServlet
{
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
	            throws ServletException, IOException
    {
        response.setContentType("text/html; charset=UTF-8");
        PrintWriter out = response.getWriter();
        try
        {
            int no=1;
            MultipartParser mr = new MultipartParser(request, 10000000);
            File file = new File ("D:");
            Part part = mr.readNextPart();

            while(part!=null)
            {
                ((FilePart) part ).writeTo(file);
                String nmFile = ((FilePart) part ).getFileName();
                out.print("<br><br> file " + nmFile + " sukses diupload");
                File fileUploaded = new File("D:"+nmFile);
                out.print("<br>ukuran file : " + fileUploaded.length());
                part = mr.readNextPart();
            }
        }
        catch(Throwable e)
        {
            out.println("error : " + e.getMessage());
        }
    }
}
 

Jangan lupa daftarkan class UploadAction sebagai sebuah servlet pada web.xml. Codenya seperti ini

   <servlet>
    <servlet-name>uploadServlet</servlet-name>
        <servlet-class>com.maniakjava.action.UploadAction</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>uploadServlet</servlet-name>
        <url-pattern>/doUpload.do</url-pattern>
    </servlet-mapping> 

Lalu tinggal jalankan aplikasi kalian, cobalah upload 4 file sekaligus dan lihat hasilnya apakah sukses terupload atau tidak.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s