Wah dah lama juga ga posting... jadi gue sempet mikir kira-kira enaknya posting apa ya?
nah kebetulan beberapa waktu yang lampau gue pernah dapet assignment dari kantor untuk buat aplikasi yang mengupload file zip lewat JSP/Servlet trus waktu selesai di upload file tadi langsung otomatis diextract... nah... pada posting kali ini gue pengen ngebahas gimana caranya buat Script upload file di JSP/Servlet... karena umumnya penanganan request yang bersifat multi-part agak berbeda pada server j2ee container dibandingkan dengan bahasa pemograman lainnya (eg. PHP). bagi yang belum ngerti atau ngga' bisa java tapi pingin belajar silahkan comment disini, nanti gue buat post tentang "java tutorial"
berikut adalah beberapa API yang harus dimiliki terlebih dahulu.
setelah file telah didownload kita lanjutkan dengan coding... pertama kali yang harus dilakukan adalah memasukkan API library diatas kedalam classpath atau dimasukan kedalam library di IDE favorit masing-masing, bagi yang belum tau caranya silahkan googling dulu...
untuk menambahkan library ke IDE NetBeans bisa lihat gambar berikut ini
setelah API di load dalam classpath yang pertama kali harus dilakukan dalam membuat script adalah mengimport paket-paket standar bawaan commons-fileupload dan commons-io
berikut adalah kode lengkapnya
bersambung...
nah kebetulan beberapa waktu yang lampau gue pernah dapet assignment dari kantor untuk buat aplikasi yang mengupload file zip lewat JSP/Servlet trus waktu selesai di upload file tadi langsung otomatis diextract... nah... pada posting kali ini gue pengen ngebahas gimana caranya buat Script upload file di JSP/Servlet... karena umumnya penanganan request yang bersifat multi-part agak berbeda pada server j2ee container dibandingkan dengan bahasa pemograman lainnya (eg. PHP). bagi yang belum ngerti atau ngga' bisa java tapi pingin belajar silahkan comment disini, nanti gue buat post tentang "java tutorial"
berikut adalah beberapa API yang harus dimiliki terlebih dahulu.
setelah file telah didownload kita lanjutkan dengan coding... pertama kali yang harus dilakukan adalah memasukkan API library diatas kedalam classpath atau dimasukan kedalam library di IDE favorit masing-masing, bagi yang belum tau caranya silahkan googling dulu...
untuk menambahkan library ke IDE NetBeans bisa lihat gambar berikut ini
setelah API di load dalam classpath yang pertama kali harus dilakukan dalam membuat script adalah mengimport paket-paket standar bawaan commons-fileupload dan commons-io
import org.apache.commons.fileupload.FileItem; import org.apache.commons.fileupload.FileUploadBase.SizeLimitExceededException; import org.apache.commons.fileupload.disk.DiskFileItemFactory; import org.apache.commons.fileupload.servlet.ServletFileUpload;
berikut adalah kode lengkapnya
package com.shido.uploader; import java.io.File; import java.util.Hashtable; import java.util.Iterator; import java.util.List; import org.apache.commons.fileupload.FileItem; import org.apache.commons.fileupload.disk.DiskFileItemFactory; import org.apache.commons.fileupload.servlet.ServletFileUpload; import javax.servlet.http.HttpServletRequest; /** * * @author shido */ public class Uploader { private HttpServletRequest request; public Uploader(HttpServletRequest request){ this.request = request; } public Hashtableupload() throws Exception { return upload("UploadFiles/"); } public Hashtable upload(String uploadPath) throws Exception { DiskFileItemFactory factory = new DiskFileItemFactory(); // maximum size that will be stored in memory factory.setSizeThreshold(4096); // the location for saving data that is larger than getSizeThreshold() factory.setRepository(new File(uploadPath)); ServletFileUpload upload = new ServletFileUpload(factory); // maximum size before a FileUploadException will be thrown upload.setSizeMax(5000000); List fileItems = upload.parseRequest(request); // assume we know there are two files. The first file is a small // text file, the second is unknown and is written to a file on // the server Iterator i = fileItems.iterator(); Hashtable table = new Hashtable (); while (i.hasNext()) { FileItem fi = (FileItem) i.next(); // filename on the client if (!fi.isFormField()) { String fileName = fi.getName(); // save comment and filename to database String fieldName = fi.getFieldName(); // write the file File file = new File(uploadPath + fileName.substring(fileName.lastIndexOf(File.pathSeparator)+1)); if(file.exists()){ throw new Exception("Filename already exist in server! Rename or choose different file!"); } fi.write(file); table.put(fieldName, file.getName()); }else{ table.put(fi.getFieldName(), fi.getString()); } } return table; } }
bersambung...
Comments
padahal udah smangat..
mana kelanjutanx??