2011-05-05 5 views
0

파일을 업로드하기 위해 java로 구현 된 RESTful 서비스가 있습니다. 코드는 다음과 같습니다.RESTful Webservice GET 파일

@POST 
@Produces("text/plain") 
public String uploadFile(@Context HttpServletRequest request) { 

    String resultStatus = "fileupload error"; 
    String fileRepository = "/MobilityPatterns/"; 

    if (ServletFileUpload.isMultipartContent(request)) { 
     FileItemFactory factory = new DiskFileItemFactory(); 
     ServletFileUpload upload = new ServletFileUpload(factory); 
     upload.setSizeMax(1073741824); //Limits the max file size (bytes) 
     List<FileItem> items = null; 
     try { 
      items = upload.parseRequest(request); 
     } catch (FileUploadException e) { 
      e.printStackTrace(); 
     } 

     String username = null; 
     for(FileItem item : items){ 
      if(item.isFormField() && item.getFieldName().equalsIgnoreCase("username")){ 
       username = item.getString(); 
      } else if (!item.isFormField() && item.getSize() > 0) { 
       try { 
        String filename = item.getName(); 

        String dateFormat = "yyyyMMdd_HHmmss"; 
        Calendar cal = Calendar.getInstance(); 
        SimpleDateFormat dateFormatter = new SimpleDateFormat(dateFormat); 
        String date = dateFormatter.format(cal.getTime()); 

        item.write(new File(fileRepository + username + "_" + date + "_" + filename)); 
        resultStatus = "fileupload success"; 
       } catch (Exception e) { 
        e.printStackTrace(); 
       } 
      } 
     } 
    } 
    return resultStatus; 
} 

하지만이 파일을 다운로드하는 서비스를 구현하고 싶습니다. 이 작업을 수행하는 방법에 대한 도움을받을 수 있습니까?

답변

0

어쩌면 이런가? jax-rs를 사용한 적이 없기 때문에 내 코드가 COMPUTE 일지 확실하지 않습니다!

@GET 
@Produces("application/x-octet-stream") 
public void downloadFile(@Context HttpServletRequest request,@Context HttpServletResponse response) { 
    //fetch the file id from request object 
    //get File using file id 
    //dump file contents to response 
}