Sunday, February 26, 2012

FileUpload using jersey

today i learnt to implement file uploading using jersey

@Path("fileupload")
public class FileUploadResource {

@POST
@Produces("text/plain")
public String loadFile(@Context HttpServletRequest request) {
String resultStatus="fail";
String fileRepository="d:\\"; //the files u choose to upload will be uploaded to this d. directory
//servlet file upload handles multiple files in a html widget

if (ServletFileUpload.isMultipartContent(request)) {//checks if the servlet request contains multipart data.
FileItemFactory factory = new DiskFileItemFactory();
ServletFileUpload upload = new ServletFileUpload(factory);
List<FileItem> items=null;
try {
items = upload.parseRequest(request);
} catch (FileUploadException e) {

e.printStackTrace();
}
if(items!=null) {
Iterator<FileItem> iter = items.iterator();
while (iter.hasNext()) {
FileItem item = iter.next();
    if(!item.isFormField() && item.getSize() > 0) {
    String fileName = processFileName(item.getName());
    try {
item.write(new File(fileRepository+fileName));
//the write methodn writes uploaded file into the disk
} catch (Exception e) {
e.printStackTrace();
}
        resultStatus="ok";
    }
}
}
}
return resultStatus;
}

private String processFileName(String fileNameInput) {
String fileNameOutput=null;
fileNameOutput = fileNameInput.substring(fileNameInput.lastIndexOf("\\")+1,fileNameInput.length());
//extracts the name of the file
return fileNameOutput;
}
ur file will be uploaded to the directory

No comments:

Post a Comment