2013-08-23 4 views
1

Я смог загрузить Strings and Dates в Mongodb, но я не могу понять, как получить файл там, используя webapp.Как загрузить файл с hibernate-ogm и Mongodb?

Я бы предпочел не использовать GridFS, а что-то вроде байта [] или 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); 
Смежные вопросы