2013-08-23 2 views
1

문자열과 날짜를 Mongodb에 업로드 할 수 있었지만 웹 응용 프로그램을 사용하여 문자열과 날짜를 파일로 가져 오는 방법을 알 수 없습니다.hibernate-ogm 및 Mongodb를 사용하여 파일을 업로드하는 방법은 무엇입니까?

GridFS를 사용하지 않고 byte [] 또는 blob과 같은 것을 사용하고 싶습니다.하지만 GridFS를 사용해야하는 경우에는 꼭해야합니다.

의 index.jsp :

<form action="./FileUploadServlet" method="POST"> 
    <input type="text" name="subject"/><br> 
    <input type="date" name="docDate"/> 
    <%--TODO: accept file into db--%> 
    <input type="file" name="fileContent"/> 

    <input type="submit" value="Submit"> 
</form> 

FileUploadServlet.java :

//imports... 

@WebServlet(name = "FileUploadServlet", urlPatterns = {"/FileUploadServlet"}) 
public class FileUploadServlet extends HttpServlet { 
     throws ServletException, IOException, Exception { 
     response.setContentType("text/html;charset=UTF-8"); 
     PrintWriter out = response.getWriter(); 
     try { 
      FileUploadDAO fileUploadDAO = new FileUploadDAO(); 
      FileUploadEntity fileUploadEntity = new FileUploadEntity(); 
String subject = request.getParameter("subject"); 
      String dateStr = request.getParameter("docDate"); 
      //TODO: GET FILE CONTENTS 
      Date date = new SimpleDateFormat("yyyy-MM-dd").parse(dateStr); 
      fileUploadEntity.setSubject(subject); 
      fileUploadEntity.setDocDate(date); 
//TODO: SET FILE CONTENTS 
      fileUploadDAO.persistAction(fileUploadEntity); 
      response.sendRedirect("/jdc/index.jsp"); 
     } finally { 
      out.close(); 
     } 
    } 
@Override 
    protected void doPost(HttpServletRequest request, HttpServletResponse response) 
      throws ServletException, IOException { 
     try { 
      processRequest(request, response); 
     } catch (Exception ex) { 
      Logger.getLogger(FileUploadServlet.class.getName()).log(Level.SEVERE, null, ex); 
     } 
    } 
} 

가 어떻게 거기에 파일을받을 수 있나요을 여기

는 지금까지이 무엇인가? 시도했지만

request.getParameter("fileContent"); 
request.getAttribute("fileContent"); 

그러나 작동하지 않았습니다.

+0

이 왜 GridFS를 사용하지 않는 것이 여기에 내가 생각이 무엇인가? –

+0

그 당시 나에게 주어진 요구 사항이었습니다. 진실하게, 당신은 아마하지 않을 것입니다. – Jeff

답변

1

데이터베이스에 이진 데이터를 업로드 할 수 있었지만 검색하는 방법이 확실하지 않습니다.

내 processRequest 메소드에 다음 줄을 추가합니다 :

byte[] b = request.getParameter("fileContent").getBytes(); 


fileUploadEntity.setFileContent(b);