Dalam suatu sistem aplikasi berbasis web tidak lengkap tanpa adanya fungsi untuk mengupload file. Seperti halnya untuk mengupload file lampiran, foto, hasil scan, file exe. dan berbagai jenis file lainnya dimana dibutuhkan bagi pengguna untuk kepentingan share dan dokumentasi.
Pada yahoo klasik atau upload foto pada blogspot ini, dapat kita temukan fungsi untuk mengupload file attachment atau gambar. Namun pada Yahoo klasik metode upload yang digunakan masih menggunakan file upload yang konvensional / sederhana. Berbeda dengan Yahoo mail beta atau pada facebook dimana menggunakan metode yang lebih canggih dalam hal mengupload gambar.
Mungkin pada sisi back-end kode yang dipakai tetap sama dengan metode konvensional namun perbedaan pada sisi kode tampilan. pada tampilan menggunakan teknologi javascript - AJAX.
Untuk implementasi fungsi back-end file upload, bermacam-macam cara yang tersedia, seperti menggunakan library common.fileUpload bawaan apache tomcat maupun library lain atau hanya dengan file input outstream (java.io). Berikut contoh sederhana menggunakan java.io.
Ada dua file yang perlu disediakan. pertama, file html yang merupakan halaman untuk memilih file yang akan diupload.
upload.html
<form action="upload.jsp" method="POST" enctype="multipart/form-data">
<!-- enctype="multipart/form-data" -->
<input type="file" name="theFile"><br>
<input type="submit">
</form>
upload.jsp
<!-- upload.jsp -->
<%@ page import="java.io.*" %>
<%
String contentType = request.getContentType();
System.out.println("Content type is :: " +contentType);
if ((contentType != null) && (contentType.indexOf("multipart/form-data") >= 0)) {
DataInputStream in = new DataInputStream(request.getInputStream());
int formDataLength = request.getContentLength();
byte dataBytes[] = new byte[formDataLength];
int byteRead = 0;
int totalBytesRead = 0;
while (totalBytesRead < formDataLength) {
byteRead = in.read(dataBytes, totalBytesRead, formDataLength);
totalBytesRead += byteRead;
}
String file = new String(dataBytes);
String saveFile = file.substring(file.indexOf("filename=\"") + 10);
//out.print("FileName:" + saveFile.toString());
saveFile = saveFile.substring(0, saveFile.indexOf("\n"));
//out.print("FileName:" + saveFile.toString());
saveFile = saveFile.substring(saveFile.lastIndexOf("\\") + 1,saveFile.indexOf("\""));
//out.print("FileName:" + saveFile.toString());
//out.print(dataBytes);
int lastIndex = contentType.lastIndexOf("=");
String boundary = contentType.substring(lastIndex + 1,contentType.length());
//out.println(boundary);
int pos;
pos = file.indexOf("filename=\"");
pos = file.indexOf("\n", pos) + 1;
pos = file.indexOf("\n", pos) + 1;
pos = file.indexOf("\n", pos) + 1;
int boundaryLocation = file.indexOf(boundary, pos) - 4;
int startPos = ((file.substring(0, pos)).getBytes()).length;
int endPos = ((file.substring(0, boundaryLocation)).getBytes()).length;
saveFile = "/Users/ansis/Documents/NetBeansProjects/statis/build/web/doc/" + saveFile;
FileOutputStream fileOut = new FileOutputStream(saveFile);
//fileOut.write(dataBytes);
fileOut.write(dataBytes, startPos, (endPos - startPos));
fileOut.flush();
fileOut.close();
out.println("File saved as " +saveFile);
}
%>
Berikut screenshot tampilan upload.html :
tampilan upload.jsp :
Sekian sedikit penjelasan cara membuat file upload menggunakan JSP secara sederhana. Pada posting selanjutnya aka dijelaskan implementasi file upload pada extjs.
ada 6 komentar :
kalo upload gambar itu disatuin sama data anggota misalnya nama, alamat dll, untuk get parameternya kaya gimana? mohon bantuanya!!
Mas/mbak anonim, untuk contoh di atas adalah contoh sederhana mengupload file hanya dengan menggunakan java.io.*
Jadi terdapat keterbatasan dimana upload tidak bisa dibarengi dengan input text. Form memiliki tipe enctype="multipart/form-data".
Ada dua cara yang dapat digunakan, yaitu :
1. Menggunakan library common fileupload Apache Jakarta.
2. Membedakan antara form uplado dengan form data anggota / input text.
Tapi yang sangat disarankan adalah menggunakan cara pertama (1)
jadi gmn contoh input data text dan file JSP ke database dengan JSP?help me......tolong kirimkan email saya,,,,help me.....
terimakasih, saya sudah cari" tp blm dpt mudah"n anda mau bantu saya.Terimakasih ones again
Wah ini berguna banget ini, kebetulan banget sekarang lg belajar JSP :)
waaahhh!!! artikelnya kereeenn.. makasi gan, membantu banget buat saya yang lagi PKL.. mantaps!!
trus cara menampilkan gambar uploadtan gmna tuh gan
Tulis komentar