Berikut langkah-langkah membuat aplikasi upload dengan Spring MVC;
1. Buat project
2. Buat project setting
3. Struktur file/folder terlihat seperti berikut
4. Atur dependencies (penambahan dependency)
5. Karena kita memulai dengan Spring Tool Suite (STS) mengikuti langkah-langkah diatas, maka secara default maka Controller-nya dibuat oleh STS. Ganti Controller seperti code berikut
package com.nitza.tutupload;
import java.util.Locale;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
@Controller
public class HomeController {
@RequestMapping(value = "/", method = RequestMethod.GET)
public String home() {
return "home";
}
}
6. Buat form dan ganti home.jsp seperti berikut
7. Tambahkan method postFileUpload seperti berikut
package com.nitza.tutupload;
import java.io.File;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.Locale;
import javax.servlet.ServletContext;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.FileItemFactory;
import org.apache.commons.fileupload.FileUploadException;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.servlet.ModelAndView;
@Controller
public class HomeController {
@Autowired
ServletContext context;
@RequestMapping(value = "/", method = RequestMethod.GET)
public String home() {
return "home";
}
@RequestMapping(value="/fileupload/upload",method=RequestMethod.POST)
public String postFileUpload(HttpServletRequest request,
HttpServletResponse response,
Model model)
{
boolean isMultipart = ServletFileUpload.isMultipartContent(request);
List fileNames = new ArrayList(); //upload beberapa file
if (isMultipart) {
FileItemFactory factory = new DiskFileItemFactory(); //membuat FileFactory
ServletFileUpload upload = new ServletFileUpload(factory);
try {
List items = upload.parseRequest(request);
Iterator iterator = items.iterator();
while (iterator.hasNext()) {
FileItem item = (FileItem) iterator.next();
if (!item.isFormField() && !item.getName().equals("")) {
String fileName = item.getName();
/* jika file upload ditempatkan relatif terhadap folder aplikasi (/resources)
String root = context.getRealPath("/");
File path = new File(root + "/resources");
*/
//berikut ditempatkan relatif terhadap server
File path = new File("/home/nitza/tututut");
if (!path.exists()) {
boolean status = path.mkdirs(); //jika path tidak ada, maka dibuat oleh aplikasi
}
File uploadedFile = new File(path + "/" + fileName);
fileNames.add(fileName);
System.out.println("File Path:-"
+ uploadedFile.getAbsolutePath());
item.write(uploadedFile);
}
}
} catch (FileUploadException e) {
System.out.println("FileUploadException:- " + e.getMessage());
} catch (Exception e) {
System.out.println("Exception:- " + e.getMessage());
}
}
model.addAttribute("files",fileNames);
return "view_success";
}
}
8. Buat file view_success.jsp seperti berikut
Finish!






Tidak ada komentar:
Posting Komentar