Ada beberapa cara yang bisa dilakukan untuk membuat web-java anda dapat menjalankan fungsi upload file. Berikut adalah cara yang sederhana untuk menangani kebutuhan ini:
1. Setup form
- Pastikan tag form yang anda buat mendefinisikan atribut enctype dengan nilai multipart/form-data
- Gunakan tag input dan berikan nilai pada atribut type dengan file
- Contoh:
<form name="profile_form" method="post" action="upload_profile" enctype="multipart/form-data">
<input type="text" name="profile_name" />
<input type="file" name="profile_image" /> <!-- input field utk file -->
</form>
2. Setup servlet code
protected void doPost(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException {
String urlPath = request.getServletPath();
if(urlPath.equals("upload_profile")){
try {
//parse request, baca semua input field yang ada pada form
ServletFileUpload upload = new ServletFileUpload(new DiskFileItemFactory());
List items = upload.parseRequest(request);
//siapkan variabel untuk menyimpan
//file yang di upload sebagai input stream
InputStream uploadStream = null;
BufferedInputStream bufferedUploadStream = null;
//looping, baca satu per satu input field
for (FileItem item : items) {
if(item.isFormField()){
//blok ini dieksekusi jika nilai atribut type dari input field bukan file
String fieldName = item.getFieldName();
if(fieldName.equals("profile_name"))
String name=item.getString(); //ambil nilai dari input profile_name
}else{
//blok ini dieksekusi untuk input field yang type-nya file
if(!item.getString().equals("")){
uploadStream = item.getInputStream();
bufferedUploadStream = new BufferedInputStream(filecontent);
}
}
}
} catch (FileUploadException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
Semoga bermanfaat :D.
Catatan: artikel ini tidak mencakup penjelasan tentang bagaimana membuat dynamic web project dengan java, serta struktur kode di dalamnya.