Kali ini kita pelajari cara mengupload gambar atau dokumen berbentuk file binary dengan JSP (Java Server Pages). Hal ini penulis lakukan karena pada tutorial sebelumnya ternyata banyak bug atau kesalahannya jika tidak dijalankan atau dideploy di Tomcat. Pada tutorial tersebut jika masih dijalankan di NetBeans kebanyakan tidak berfungsi.
Kali ini kita pakai cara yang lain yaitu menggunakan library milik com.oreilly.servlet yang dapat didownload di http://www.jarfinder.com/index.php/jars/versionInfo/38510 atau di http://www.servlets.com/cos/.
Langkah pertama buat project JSP di NetBeans, kemudian masukkan library cos-09May2002.jar atau versi lain yang anda dapatkan. Kemudian buat halaman berikut untuk memilih gambar :
form.jsp
<%--
http://cariprogram.blogspot.com
nuramijaya@gmail.com
--%>
<%@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>
<h1>Upload Gambar</h1>
<%
String kode = "111";
%>
<form action="upload.jsp" method="post" enctype="multipart/form-data">
Kode
<input type="text" name="kode" value="<%= kode%>"/><br/>
Foto
<input type="file" name="foto"/><br/>
<input type="submit" value="Upload"/>
</form>
</body>
</html>
Setelah itu buat halaman berikut ini untuk memproses upload fila gambar atau file biner tersebut :
upload.jsp
<%--
http://cariprogram.blogspot.com
nuramijaya@gmail.com
--%>
<HTML>
<HEAD>
<TITLE>Proses Simpan Foto</TITLE>
</HEAD>
<BODY>
<%@page import="java.io.*,
com.oreilly.servlet.*,
com.oreilly.servlet.multipart.*" %>
<%
String kode = ""; // Parameter
boolean ada_kesalahan = false;
MultipartParser mr = null;
try {
mr = new
MultipartParser(request,10000000);
}
catch (IOException i) {
ada_kesalahan = true;
}
if (!ada_kesalahan) {
com.oreilly.servlet.multipart.Part fp = mr.readNextPart();
while (fp != null) {
if (fp.isFile()) {
// Proses upload gambar
String namaBerkas =
((FilePart)fp).getFileName();
if (namaBerkas!= null &&
namaBerkas.length()>0) {
String namaBaru=
getServletContext().getRealPath("\\") +
"\\images\\" +
kode.toLowerCase() + ".jpg";
File berkas = new File(namaBaru);
if ( ((FilePart)fp).writeTo(berkas) > 0)
out.println("Gambar telah disimpan<BR>");
else
out.println("Gambar gagal disimpan<BR>");
}
}
else {
// Ambil nilai parameter
// Bisa sekalian kode program untuk menyimpan data ke database diletakkan disini
String namaParam = fp.getName();
if (namaParam.equals( "kode"))
kode =
((ParamPart)fp).getStringValue();
}
fp = mr.readNextPart();
}
}
%>
</BODY>
</HTML>
Project beserta library dapat didownload disini.
Pada Google Docs klik File - Download.
Semoga berhasil :)