public InputStream getFileSteam(FileHelper fh) { try { Database ndbCurrent = ExtLibUtil.getCurrentSession().getDatabase(fh.getServer(), fh.getPath()); if (ndbCurrent == null) return null; Document docCurrent = ndbCurrent.getDocumentByUNID(fh.getDocID()); if (docCurrent == null) { ndbCurrent.recycle(); return null; } EmbeddedObject entity = docCurrent.getAttachment(fh.getName()); if (entity == null) { ndbCurrent.recycle(); docCurrent.recycle(); return null; } InputStream is = entity.getInputStream(); entity.recycle(); docCurrent.recycle(); ndbCurrent.recycle(); return is; // entity.getInputStream(); } catch (Exception e) { e.printStackTrace(); } return null; }
public FileHelper addFile(FileHelper fh, UploadedFile file, String strNewId) { try { Database ndbCurrent = ExtLibUtil.getCurrentSession().getDatabase(fh.getServer(), fh.getPath()); if (ndbCurrent == null) return null; Document docCurrent = ndbCurrent.getDocumentByUNID(fh.getDocID()); if (docCurrent == null) { ndbCurrent.recycle(); return null; } IUploadedFile FTemp = file.getUploadedFile(); File SrFile = FTemp.getServerFile(); File FNew = new File( SrFile.getParentFile().getAbsolutePath() + File.separator + FTemp.getClientFileName()); SrFile.renameTo(FNew); RichTextItem rt = null; rt = (RichTextItem) docCurrent.getFirstItem(fh.getFieldName()); if (rt == null) { rt = docCurrent.createRichTextItem(fh.getFieldName()); } EmbeddedObject em = rt.embedObject(EmbeddedObject.EMBED_ATTACHMENT, "", FNew.getAbsolutePath(), null); docCurrent.save(true, false, true); FileHelper fhNew = new FileHelper(); fhNew.setFieldName(fh.getFieldName()); fhNew.setServer(fh.getServer()); fhNew.setPath(fh.getPath()); fhNew.setFileSize(em.getFileSize()); fhNew.setName(em.getName()); fhNew.setDisplayName(FTemp.getClientFileName()); fhNew.setId(strNewId); fhNew.setDocID(fh.getDocID()); fhNew.setFileType(ComponentSessionFacade.get().getMimeTypes().getContentType(FNew)); fhNew.setNewFile(false); rt.recycle(); docCurrent.recycle(); ndbCurrent.recycle(); return fhNew; } catch (Exception e) { e.printStackTrace(); } return null; }
@SuppressWarnings("unchecked") public void removeFile(FileHelper fh) { try { Database ndbCurrent = ExtLibUtil.getCurrentSession().getDatabase(fh.getServer(), fh.getPath()); if (ndbCurrent == null) return; Document docCurrent = ndbCurrent.getDocumentByUNID(fh.getDocID()); if (docCurrent == null) { ndbCurrent.recycle(); return; } // RESULTS IN NOTE ITEM NOT FOUND ERROR AFTERWARDS // EmbeddedObject entity = docCurrent.getAttachment(fh.getName()); // if (entity == null) // return; // entity.remove(); RichTextItem rti = (RichTextItem) docCurrent.getFirstItem(fh.getFieldName()); Vector<EmbeddedObject> entitys = rti.getEmbeddedObjects(); for (EmbeddedObject entity : entitys) { if (entity.getType() == EmbeddedObject.EMBED_ATTACHMENT) { if (entity.getName().equals(fh.getName())) { entity.remove(); break; } } } docCurrent.save(true, false, true); rti.recycle(); docCurrent.recycle(); ndbCurrent.recycle(); } catch (Exception e) { e.printStackTrace(); } }