Return-Path: Delivered-To: apmail-jackrabbit-dev-archive@www.apache.org Received: (qmail 94425 invoked from network); 14 Apr 2010 01:23:58 -0000 Received: from unknown (HELO mail.apache.org) (140.211.11.3) by 140.211.11.9 with SMTP; 14 Apr 2010 01:23:58 -0000 Received: (qmail 53556 invoked by uid 500); 14 Apr 2010 01:23:58 -0000 Delivered-To: apmail-jackrabbit-dev-archive@jackrabbit.apache.org Received: (qmail 53512 invoked by uid 500); 14 Apr 2010 01:23:58 -0000 Mailing-List: contact dev-help@jackrabbit.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@jackrabbit.apache.org Delivered-To: mailing list dev@jackrabbit.apache.org Received: (qmail 53504 invoked by uid 99); 14 Apr 2010 01:23:58 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 14 Apr 2010 01:23:57 +0000 X-ASF-Spam-Status: No, hits=2.9 required=10.0 tests=HTML_MESSAGE,SPF_NEUTRAL X-Spam-Check-By: apache.org Received-SPF: neutral (nike.apache.org: local policy) Received: from [209.85.160.170] (HELO mail-gy0-f170.google.com) (209.85.160.170) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 14 Apr 2010 01:23:49 +0000 Received: by gyf2 with SMTP id 2so3538123gyf.1 for ; Tue, 13 Apr 2010 18:23:27 -0700 (PDT) MIME-Version: 1.0 Received: by 10.100.225.15 with HTTP; Tue, 13 Apr 2010 18:23:26 -0700 (PDT) Date: Wed, 14 Apr 2010 08:23:26 +0700 Received: by 10.101.149.17 with SMTP id b17mr12336337ano.80.1271208206188; Tue, 13 Apr 2010 18:23:26 -0700 (PDT) Message-ID: Subject: How to upload image from jackrabbit From: Mila Yuliani To: dev@jackrabbit.apache.org Content-Type: multipart/alternative; boundary=0016e68ef09890fb2904842839cf X-Virus-Checked: Checked by ClamAV on apache.org --0016e68ef09890fb2904842839cf Content-Type: text/plain; charset=UTF-8 Hi all, I have problem of my jackrabbit..:( i'm new in jackrabbit for upload and display content. i'm using velocity for view from client. my case is for upload photo and display photo from repository node jcr. here the code : 1. formRegister.vm : ... Upload Photo :      ... 2. class Pojo is named Employee.java : ... private String docUpload=""; private String docUploadName=""; private String docUploadPath=""; 3. SaveEmployee.java for saving into database and repository jcr : private File docUpload; private String docUploadFileName; private String docUploadContentType; public String execute(){ if(docUpload != null) { employee.setDocUploadName(docUploadFileName); employee.setDocUploadPath(docUpload.getPath()); try { repoManager.importFile(repoManager.getRootNode(), docUpload, getId()); repoManager.save(); } catch (RepositoryException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } manager.save(employee); 4. this RepositoryDao for Data Access Object Jackrabbit: public void importFile(Node parentnode, File file, String key) throws RepositoryException, IOException { String mimeType = new MimetypesFileTypeMap().getContentType(file); if (mimeType==null) mimeType="application/octet-stream"; Node fileNode = parentnode.addNode(key, "nt:file"); Node resNode = fileNode.addNode("jcr:content", "nt:resource"); resNode.addMixin("mix:versionable"); //set node mixin type //resNode.setProperty("jcr:versionLabels", file.getName()); resNode.setProperty("jcr:mimeType", mimeType); resNode.setProperty("jcr:encoding", ""); resNode.setProperty("jcr:data", new FileInputStream(file)); Calendar lastModified = Calendar.getInstance(); lastModified.setTimeInMillis(file.lastModified()); resNode.setProperty("jcr:lastModified", lastModified); } public void save() throws AccessDeniedException, ItemExistsException, ConstraintViolationException, InvalidItemStateException, VersionException, LockException, NoSuchNodeTypeException, RepositoryException { jcrSession.save(); } 5. here is from database : DocUploadName : screenshot-2.png DocUploadPath : /home/Documents/mils/workspace/Papaje/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/work/Catalina/localhost/cimeng/upload_66774dc6_127f8062761__8000_00000023.tmp that's mean is data has upload successfully into database, right? so, how i can get image name from docUploadName and it's from repository node jackrabbit. Correct me if I'm wrong..:) -- Best Regards, Mila Yuliani Developer Blueoxygen Workspace Meruvian - Indonesia Office Phone : (021)935 865 77 Mobile : 02199869875 --0016e68ef09890fb2904842839cf Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: base64 SGkgYWxsLDxicj48YnI+SSBoYXZlIHByb2JsZW0gb2YgbXkgamFja3JhYmJpdC4uOig8YnI+aSYj Mzk7bSBuZXcgaW4gamFja3JhYmJpdCBmb3IgdXBsb2FkIGFuZCBkaXNwbGF5IGNvbnRlbnQuIGkm IzM5O20gdXNpbmcgdmVsb2NpdHkgZm9yIHZpZXcgZnJvbSBjbGllbnQuIG15IGNhc2UgaXMgZm9y IHVwbG9hZCBwaG90byBhbmQgZGlzcGxheSBwaG90byBmcm9tIHJlcG9zaXRvcnkgbm9kZSBqY3Iu IGhlcmUgdGhlIGNvZGUgOjxicj4KPGJyPsKgMS4gZm9ybVJlZ2lzdGVyLnZtIDo8YnI+wqAuLi4g PGJyPsKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAmbHQ7dHImZ3Q7PGJyPsKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqAgJmx0O3RkIHdpZHRoPSZxdW90OzI1JSZxdW90OyBoZWlnaHQ9JnF1b3Q7 MjYmcXVvdDsgYWxpZ249JnF1b3Q7cmlnaHQmcXVvdDsgY2xhc3M9JnF1b3Q7dGRsZWZ0JnF1b3Q7 Jmd0O1VwbG9hZCBQaG90byA6JmFtcDtuYnNwOyZhbXA7bmJzcDsmbHQ7L3RkJmd0Ozxicj4KwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAmbHQ7dGQgY2xhc3M9JnF1b3Q7dGRyaWdodCZxdW90 OyZndDsmYW1wO25ic3A7JmFtcDtuYnNwOyZsdDtpbnB1dCB0eXBlPSZxdW90O2ZpbGUmcXVvdDsg c2l6ZT0mcXVvdDsyMyZxdW90OyBuYW1lPSZxdW90O2RvY1VwbG9hZCZxdW90OyB2YWx1ZT0mcXVv dDskIWVtcGxveWVlLmRvY1VwbG9hZCZxdW90OyZndDsmbHQ7L3RkJmd0Ozxicj7CoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqAgJmx0Oy90ciZndDs8YnI+CsKgLi4uPGJyPjxicj7CoDIuIGNsYXNzIFBv am8gaXMgbmFtZWQgRW1wbG95ZWUuamF2YSA6PGJyPsKgLi4uPGJyPsKgwqDCoMKgIHByaXZhdGUg U3RyaW5nIGRvY1VwbG9hZD0mcXVvdDsmcXVvdDs7PGJyPsKgwqDCoMKgIHByaXZhdGUgU3RyaW5n IGRvY1VwbG9hZE5hbWU9JnF1b3Q7JnF1b3Q7Ozxicj7CoMKgwqDCoCBwcml2YXRlIFN0cmluZyBk b2NVcGxvYWRQYXRoPSZxdW90OyZxdW90Ozs8YnI+PGJyPsKgMy4gU2F2ZUVtcGxveWVlLmphdmEg Zm9yIHNhdmluZyBpbnRvIGRhdGFiYXNlIGFuZCByZXBvc2l0b3J5IGpjciA6PGJyPgrCoMKgwqDC oCBwcml2YXRlIEZpbGUgZG9jVXBsb2FkOzxicj7CoMKgwqDCoCBwcml2YXRlIFN0cmluZyBkb2NV cGxvYWRGaWxlTmFtZTs8YnI+wqDCoMKgIHByaXZhdGUgU3RyaW5nIGRvY1VwbG9hZENvbnRlbnRU eXBlOzxicj7CoMKgwqAgPGJyPsKgwqDCoMKgIHB1YmxpYyBTdHJpbmcgZXhlY3V0ZSgpezxicj7C oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBpZihkb2NVcGxvYWQgIT0gbnVsbCkge8KgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqAgPGJyPsKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg IGVtcGxveWVlLnNldERvY1VwbG9hZE5hbWUoZG9jVXBsb2FkRmlsZU5hbWUpOzxicj4KwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgZW1wbG95ZWUuc2V0RG9jVXBsb2FkUGF0aChkb2NV cGxvYWQuZ2V0UGF0aCgpKTs8YnI+wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgdHJ5 IHs8YnI+wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCByZXBvTWFuYWdl ci5pbXBvcnRGaWxlKHJlcG9NYW5hZ2VyLmdldFJvb3ROb2RlKCksIGRvY1VwbG9hZCwgZ2V0SWQo KSk7wqDCoCA8YnI+wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCByZXBv TWFuYWdlci5zYXZlKCk7PGJyPgrCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB9IGNh dGNoIChSZXBvc2l0b3J5RXhjZXB0aW9uIGUpIHs8YnI+wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoCBlLnByaW50U3RhY2tUcmFjZSgpOzxicj7CoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoCB9IGNhdGNoIChJT0V4Y2VwdGlvbiBlKSB7PGJyPsKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgZS5wcmludFN0YWNrVHJhY2UoKTs8YnI+wqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgfTxicj7CoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqAgfTxicj4KwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIG1hbmFnZXIuc2F2ZShlbXBsb3llZSk7 PGJyPjxicj7CoDQuIHRoaXMgUmVwb3NpdG9yeURhbyBmb3IgRGF0YSBBY2Nlc3MgT2JqZWN0IEph Y2tyYWJiaXQ6PGJyPjxicj7CoMKgwqDCoMKgIHB1YmxpYyB2b2lkIGltcG9ydEZpbGUoTm9kZSBw YXJlbnRub2RlLCBGaWxlIGZpbGUsIFN0cmluZyBrZXkpIHRocm93cyBSZXBvc2l0b3J5RXhjZXB0 aW9uLCBJT0V4Y2VwdGlvbiB7PGJyPgrCoMKgwqDCoMKgwqDCoMKgIFN0cmluZyBtaW1lVHlwZSA9 IG5ldyBNaW1ldHlwZXNGaWxlVHlwZU1hcCgpLmdldENvbnRlbnRUeXBlKGZpbGUpOzxicj7CoMKg wqDCoMKgwqDCoMKgIGlmIChtaW1lVHlwZT09bnVsbCkgbWltZVR5cGU9JnF1b3Q7YXBwbGljYXRp b24vb2N0ZXQtc3RyZWFtJnF1b3Q7Ozxicj48YnI+wqDCoMKgwqDCoMKgwqDCoCBOb2RlIGZpbGVO b2RlID0gcGFyZW50bm9kZS5hZGROb2RlKGtleSwgJnF1b3Q7bnQ6ZmlsZSZxdW90Oyk7PGJyPgrC oMKgwqDCoMKgwqDCoCA8YnI+wqDCoMKgwqDCoMKgwqDCoCBOb2RlIHJlc05vZGUgPSBmaWxlTm9k ZS5hZGROb2RlKCZxdW90O2pjcjpjb250ZW50JnF1b3Q7LCAmcXVvdDtudDpyZXNvdXJjZSZxdW90 Oyk7PGJyPsKgwqDCoMKgwqDCoMKgwqAgcmVzTm9kZS5hZGRNaXhpbigmcXVvdDttaXg6dmVyc2lv bmFibGUmcXVvdDspOyAvL3NldCBub2RlIG1peGluIHR5cGXCoMKgIDxicj7CoMKgwqDCoMKgwqDC oMKgIC8vcmVzTm9kZS5zZXRQcm9wZXJ0eSgmcXVvdDtqY3I6dmVyc2lvbkxhYmVscyZxdW90Oywg ZmlsZS5nZXROYW1lKCkpOzxicj4KwqDCoMKgwqDCoMKgwqDCoCByZXNOb2RlLnNldFByb3BlcnR5 KCZxdW90O2pjcjptaW1lVHlwZSZxdW90OywgbWltZVR5cGUpOzxicj7CoMKgwqDCoMKgwqDCoMKg IHJlc05vZGUuc2V0UHJvcGVydHkoJnF1b3Q7amNyOmVuY29kaW5nJnF1b3Q7LCAmcXVvdDsmcXVv dDspOzxicj7CoMKgwqDCoMKgwqDCoMKgIHJlc05vZGUuc2V0UHJvcGVydHkoJnF1b3Q7amNyOmRh dGEmcXVvdDssIG5ldyBGaWxlSW5wdXRTdHJlYW0oZmlsZSkpOzxicj4KwqDCoMKgwqDCoMKgwqDC oCBDYWxlbmRhciBsYXN0TW9kaWZpZWQgPSBDYWxlbmRhci5nZXRJbnN0YW5jZSgpOzxicj7CoMKg wqDCoMKgwqDCoMKgIGxhc3RNb2RpZmllZC5zZXRUaW1lSW5NaWxsaXMoZmlsZS5sYXN0TW9kaWZp ZWQoKSk7PGJyPsKgwqDCoMKgwqDCoMKgwqAgcmVzTm9kZS5zZXRQcm9wZXJ0eSgmcXVvdDtqY3I6 bGFzdE1vZGlmaWVkJnF1b3Q7LCBsYXN0TW9kaWZpZWQpOzxicj7CoMKgwqDCoMKgwqDCoCA8YnI+ wqDCoMKgwqAgfTxicj4KPGJyPsKgwqDCoCBwdWJsaWMgdm9pZCBzYXZlKCk8YnI+wqDCoMKgwqAg dGhyb3dzIEFjY2Vzc0RlbmllZEV4Y2VwdGlvbiwgSXRlbUV4aXN0c0V4Y2VwdGlvbiwgQ29uc3Ry YWludFZpb2xhdGlvbkV4Y2VwdGlvbiw8YnI+wqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBJbnZhbGlk SXRlbVN0YXRlRXhjZXB0aW9uLCBWZXJzaW9uRXhjZXB0aW9uLCBMb2NrRXhjZXB0aW9uLDxicj7C oMKgwqDCoMKgwqDCoMKgwqDCoMKgIE5vU3VjaE5vZGVUeXBlRXhjZXB0aW9uLCBSZXBvc2l0b3J5 RXhjZXB0aW9uIHs8YnI+CsKgwqDCoMKgwqDCoMKgwqAgamNyU2Vzc2lvbi5zYXZlKCk7PGJyPsKg wqDCoMKgIH08YnI+PGJyPsKgNS4gaGVyZSBpcyBmcm9tIGRhdGFiYXNlIDo8YnI+wqBEb2NVcGxv YWROYW1lIDogc2NyZWVuc2hvdC0yLnBuZzxicj7CoERvY1VwbG9hZFBhdGjCoMKgIDogL2hvbWUv RG9jdW1lbnRzL21pbHMvd29ya3NwYWNlL1BhcGFqZS8ubWV0YWRhdGEvLnBsdWdpbnMvb3JnLmVj bGlwc2Uud3N0LnNlcnZlci5jb3JlL3RtcDAvd29yay9DYXRhbGluYS9sb2NhbGhvc3QvY2ltZW5n L3VwbG9hZF82Njc3NGRjNl8xMjdmODA2Mjc2MV9fODAwMF8wMDAwMDAyMy50bXA8YnI+Cjxicj7C oHRoYXQmIzM5O3MgbWVhbiBpcyBkYXRhIGhhcyB1cGxvYWQgc3VjY2Vzc2Z1bGx5IGludG8gZGF0 YWJhc2UsIHJpZ2h0Pzxicj7CoHNvLCBob3cgaSBjYW4gZ2V0IGltYWdlIG5hbWUgZnJvbSBkb2NV cGxvYWROYW1lIGFuZCBpdCYjMzk7cyBmcm9tIHJlcG9zaXRvcnkgbm9kZSBqYWNrcmFiYml0Ljxi cj48YnI+wqBDb3JyZWN0IG1lIGlmIEkmIzM5O20gd3JvbmcuLjopPGJyPjxicj4tLSA8YnI+CkJl c3QgUmVnYXJkcyw8YnI+PGJyPk1pbGEgWXVsaWFuaTxicj5EZXZlbG9wZXIgQmx1ZW94eWdlbiBX b3Jrc3BhY2U8YnI+TWVydXZpYW4gLSBJbmRvbmVzaWE8YnI+T2ZmaWNlIFBob25lIDogKDAyMSk5 MzUgODY1IDc3PGJyPk1vYmlsZSA6IDAyMTk5ODY5ODc1PGJyPgo= --0016e68ef09890fb2904842839cf--