2014-04-03 59 views
0

我有一個包含文件壓縮的​​PDF文件,所以:得到一個ZIP條目爲PDF文件,並把它分割成圖像

  1. zip文件
  2. 我得到的ZIP條目( PDF文件)
  3. 我保存每個文件(ZIP條目在數據庫表)作爲 字節

THI的陣列s是代碼來做到這一點:

FileInputStream fis = new FileInputStream("C:\\Users\\manu\\Documents\\zipFile.zip"); 
    ZipInputStream zis = new ZipInputStream(new BufferedInputStream(fis));//decompression 

    ZipEntry entry; 

    //int i=0 
    while((entry = zis.getNextEntry()) != null) { 

     //check if the file is a directory 
     if(!entry.isDirectory()){ 

       println(entry.getName()); 
       ByteArrayOutputStream output = new ByteArrayOutputStream(); 
       int data = 0; 
       while((data = zis.read()) != - 1) 
        { 
        output.write(data); 
        } 

        byte[] b = output.toByteArray(); 

        //--------------------save in database table invoice the document 

        byte[] pdf=b 
        String PDFName=entry.getName() 


        def fact= new Fact(pdf:valpdf ,PDFName: PDFName) 
        fact.save() 
        //----------------------------------save in table Fact the document 
        // The ZipEntry is extracted in the output 
        println("saved successfully") 

        output.close(); 
      } 

    } 
    zis.close(); 
    fis.close(); 

的問題是:我必須對PDF文件(ZIP條目)分成圖像,並將它們保存在此另一個數據庫表中的數組字節我發現

代碼
FileOutputStream fileOuputStream = 
       new FileOutputStream("C:\\testing.pdf"); 
    fileOuputStream.write(b); 
    fileOuputStream.close(); 

是有辦法做到這一點,而無需創建一個物理文件

回答

0

我不知道什麼是你的數據庫,也什麼是對象事實並。

如果您想將PDF文件存儲到數據庫

  1. 轉換PDF文件(ZIP條目)成字節
  2. 創建數據庫列作爲BLOB
  3. 值插入到BLOB列。

注意**,你不需要創建物理文件

編號:https://stackoverflow.com/a/19971334/2182351 -

String sql = "INSERT INTO testtable(stringcolumn, blobcolumn) VALUES(?,?)"; 
      PreparedStatement statement = conn.getConnection().prepareStatement(sql); 
      statement.setLong(1, version); 
      ByteArrayInputStream bais = new ByteArrayInputStream(b); // Here b is byte array from your sample code 
      statement.setBlob(2, bais);   
      statement.execute(); 
      conn.commit(); 
相關問題