2012-06-21 3 views
-1

PDF처럼 모든 문서 파일을 업로드하는 방법, DOCX, MySQL 데이터베이스에 XLS 자바와 JPA와 Spring 사전PDF, 문서, XLS 파일 업로드

당신은 데이터베이스에 파일을 저장할 수 없습니다
+1

google 'java를 사용하여 파일 업로드' – hjpotter92

답변

0

에서 감사를 사용하여, 그러나 그들의 위치를 ​​테이블에 저장할 수 있습니다.

+1

잘 파일을 BLOB로 데이터베이스에 저장할 수 있습니다. 하지만 난 당신이 fs에 데이터베이스와 파일 자체의 파일에 대한 경로를 저장해야한다는 데 동의합니다. – Nicolas

+0

@Nicolas : 정확하게, 어떤 방법 으로든 감사합니다. –

+0

@ 니콜라스 : 재판에 대한 감사하지만 BLOB 유형을 알고 있지만 코드 나 예제가 있으면 파일의 데이터가 바이트, 문자열 또는 다른 것을 의미하는 형식이 될 것입니다. 미리 감사드립니다 – Mayur

1

내가

  • DB와 같은 비슷한 상황에 걸쳐하지만, 귀하의 요구 사항의 .. 약간의 수정과 함께 온거야 - JDeveloper의 11 (자바 돌봐 -
  • IDE가 (대신의 MySQL) 오라클 11g , 그네 - MVC)
  • you'r 내가이 개발하는 방법을 봐 가지고이 수정 PLZ로 냉각하면

,

흐름 : UI (파일 패스) ---> IDE에 의해 (처리) - -> DB (데이터 저장)

DB를 스키마 만들기 : (2 Coloumns)

  • 정보 - 대 Varchar 2 (데이터 형식)
  • 미디어 - 이제 물방울

가 완료를 DB가있는 경우 & .jspx 페이지 (Backing Bean없이!)를 작성하고 &을 Component Palette에서 끌어 놓습니다. Managed Bean을 작성하고 다음 코드를 작성하여 UI & 프로세스의 매개 변수로 파일을 수신하십시오.

코드 : -

public class Upload() 
{  
    private UploadedFile _file; 

    public void setFile(UploadedFile _file) { 
     this._file = _file; 
    } 

    public UploadedFile getFile() { 
     return _file; 
    } 

    public String UploadMedia(){ 

     UploadedFile myFile = (UploadedFile)this.getFile(); 

     System.out.println("****************************************************"); 

     BindingContext bc = BindingContext.getCurrent(); 
     BindingContainer bindings = bc.getCurrentBindingsEntry(); 
     DCBindingContainer dbc = (DCBindingContainer)bindings; 
     DCIteratorBinding iter = dbc.findIteratorBinding("MediadbVO1Iterator"); 

     Row row = iter.getCurrentRow(); 
     row.setAttribute("Media", createBlobDomain(myFile)); 
     return null; 
    } 

    private BlobDomain createBlobDomain(UploadedFile file) { 
     InputStream in = null; 
     BlobDomain blobDomain = null; 
     OutputStream out = null; 

     try { 
      in = file.getInputStream(); 

      blobDomain = new BlobDomain(); 
      out = blobDomain.getBinaryOutputStream(); 
      byte[] buffer = new byte[8192]; 
      int bytesRead = 0; 

      while ((bytesRead = in.read(buffer, 0, 8192)) != -1) { 
       out.write(buffer, 0, bytesRead); 
      } 

      in.close(); 

     } catch (IOException e) { 
      e.printStackTrace(); 
     } catch (SQLException e) { 
      e.fillInStackTrace(); 
     } 

     return blobDomain; 

    } 
} 

는 backing_Upload가 Paramater 같은 파일 내 콩의 이름은 "#{backing_Upload.file}" 로 입력 파일 구성 요소의 "값"필드를 설정합니다.

지금 & 드롭 버튼 &과 같이 자사의 액션 필드를 설정 명령을 드래그하여 " #{backing_Upload.UploadMedia}" backing_Upload 내 콩의 이름이고 UploadMedia 내 방법입니다.

원하는 파일을 선택하면 희망을 실현하십시오 & 클릭하면 파일이 DB에 저장됩니다.

+0

코드를 구현하고 다시 시도해 보겠습니다. – Mayur

+0

환영합니다 .. 언제든지 :) – user1443884

관련 문제