<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <title>Liferay 7.2 - How to store images in my Database</title>
  <link rel="self" href="https://liferay.dev/c/message_boards/find_thread?p_l_id=119785294&amp;threadId=115240074" />
  <subtitle>Liferay 7.2 - How to store images in my Database</subtitle>
  <id>https://liferay.dev/c/message_boards/find_thread?p_l_id=119785294&amp;threadId=115240074</id>
  <updated>2026-04-04T18:05:18Z</updated>
  <dc:date>2026-04-04T18:05:18Z</dc:date>
  <entry>
    <title>RE: Liferay 7.2 - How to store images in my Database</title>
    <link rel="alternate" href="https://liferay.dev/c/message_boards/find_message?p_l_id=119785294&amp;messageId=115279848" />
    <author>
      <name>Fabio Carvalho</name>
    </author>
    <id>https://liferay.dev/c/message_boards/find_message?p_l_id=119785294&amp;messageId=115279848</id>
    <updated>2019-09-13T13:11:12Z</updated>
    <published>2019-09-13T13:11:12Z</published>
    <summary type="html">Hi,&lt;br /&gt;&lt;br /&gt;Looks like by using the DLAppLocalServiceUtil I am able to delete the created folder. Thanks a lot!</summary>
    <dc:creator>Fabio Carvalho</dc:creator>
    <dc:date>2019-09-13T13:11:12Z</dc:date>
  </entry>
  <entry>
    <title>RE: Liferay 7.2 - How to store images in my Database</title>
    <link rel="alternate" href="https://liferay.dev/c/message_boards/find_message?p_l_id=119785294&amp;messageId=115276399" />
    <author>
      <name>Mohammed Yasin</name>
    </author>
    <id>https://liferay.dev/c/message_boards/find_message?p_l_id=119785294&amp;messageId=115276399</id>
    <updated>2019-09-13T11:21:58Z</updated>
    <published>2019-09-13T11:21:58Z</published>
    <summary type="html">&lt;html&gt;&lt;head&gt;&lt;/head&gt;&lt;body&gt;Hi,&amp;nbsp;Can you please share the error log your getting when deleting the folder.I would suggest you to use&amp;nbsp;&amp;nbsp; below api for adding folder&lt;br&gt;&lt;pre&gt;&lt;code&gt;&amp;amp;nbsp;DLAppLocalServiceUtil.addFolder(userId, repositoryId, parentFolderId, name, description, serviceContext)&amp;amp;nbsp;&lt;/code&gt;&lt;/pre&gt;&lt;/body&gt;&lt;/html&gt;</summary>
    <dc:creator>Mohammed Yasin</dc:creator>
    <dc:date>2019-09-13T11:21:58Z</dc:date>
  </entry>
  <entry>
    <title>RE: Liferay 7.2 - How to store images in my Database</title>
    <link rel="alternate" href="https://liferay.dev/c/message_boards/find_message?p_l_id=119785294&amp;messageId=115276059" />
    <author>
      <name>Fabio Carvalho</name>
    </author>
    <id>https://liferay.dev/c/message_boards/find_message?p_l_id=119785294&amp;messageId=115276059</id>
    <updated>2019-09-13T11:18:11Z</updated>
    <published>2019-09-13T11:18:11Z</published>
    <summary type="html">&lt;html&gt;&lt;head&gt;&lt;/head&gt;&lt;body&gt;Hi Mohammed,&lt;br&gt;&lt;br&gt;I was following your first link to create a documents and media folder and ended up with this:&lt;br&gt;&lt;pre&gt;&lt;code&gt;public void addProduct(ActionRequest request, ActionResponse response) throws PortalException, FileNotFoundException {
&amp;amp;nbsp; &amp;amp;nbsp; ThemeDisplay theme = (ThemeDisplay) request.getAttribute(WebKeys.THEME_DISPLAY);
&amp;amp;nbsp; &amp;amp;nbsp; if (!folderExists(theme)) addFolder(request, theme);
}

private boolean folderExists(ThemeDisplay theme) {
&amp;amp;nbsp; &amp;amp;nbsp; if (DLFolderLocalServiceUtil.fetchFolder(theme.getScopeGroupId(), DLFolderConstants.DEFAULT_PARENT_FOLDER_ID, "Product Images") == null) return false;
&amp;amp;nbsp; &amp;amp;nbsp; else return true;
}
​​​​​​​
private void addFolder(ActionRequest request, ThemeDisplay theme) throws PortalException &amp;amp;nbsp;{
&amp;amp;nbsp; &amp;amp;nbsp; long userId = theme.getUserId();
&amp;amp;nbsp; &amp;amp;nbsp; long groupId = theme.getScopeGroupId();
&amp;amp;nbsp; &amp;amp;nbsp; long repositoryId = theme.getScopeGroupId();
&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;
&amp;amp;nbsp; &amp;amp;nbsp; long parentFolderId = DLFolderConstants.DEFAULT_PARENT_FOLDER_ID;
&amp;amp;nbsp; &amp;amp;nbsp; String folderName = "Product Images";
&amp;amp;nbsp; &amp;amp;nbsp; String folderDescription = "Folder to store product images";
&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;
&amp;amp;nbsp; &amp;amp;nbsp; ServiceContext context = ServiceContextFactory.getInstance(DLFolder.class.getName(), request);
&amp;amp;nbsp; &amp;amp;nbsp; DLFolderLocalServiceUtil.addFolder(userId, groupId, repositoryId, false, parentFolderId, folderName, null, false, context);
}&lt;/code&gt;&lt;/pre&gt;&lt;br&gt;This is creating the folder perfectly. The problem is: in my portal if I go to Content &amp;amp; Data&amp;nbsp;-&amp;gt; Documents and Media -&amp;gt; Select the created folder and try to move it to the recycle bin, my request fails to complete. This doesn't happens if I create a folder on my portal instead of creating it programmatically. Any clue why this is happening? Am I passing a wrong param?&lt;/body&gt;&lt;/html&gt;</summary>
    <dc:creator>Fabio Carvalho</dc:creator>
    <dc:date>2019-09-13T11:18:11Z</dc:date>
  </entry>
  <entry>
    <title>RE: Liferay 7.2 - How to store images in my Database</title>
    <link rel="alternate" href="https://liferay.dev/c/message_boards/find_message?p_l_id=119785294&amp;messageId=115242590" />
    <author>
      <name>Mohammed Yasin</name>
    </author>
    <id>https://liferay.dev/c/message_boards/find_message?p_l_id=119785294&amp;messageId=115242590</id>
    <updated>2019-09-10T10:53:42Z</updated>
    <published>2019-09-10T10:53:42Z</published>
    <summary type="html">&lt;html&gt;&lt;head&gt;&lt;/head&gt;&lt;body&gt;Hi ,&amp;nbsp;&lt;br&gt;For uploading the document and saving it in Liferay DMS you can refer below reference&lt;a href="http://liferayiseasy.blogspot.com/2015/07/folder-and-file-upload-programmatically.html"&gt;http://liferayiseasy.blogspot.com/2015/07/folder-and-file-upload-programmatically.html&lt;/a&gt;.&lt;br&gt;For doing multiple uploads you can do it using liferay-upload&amp;nbsp; script&amp;nbsp; You can refer below&amp;nbsp; code and url&lt;br&gt;&lt;a href="https://github.com/liferay/liferay-portal/blob/7.2.x/modules/apps/document-library/document-library-web/src/main/resources/META-INF/resources/document_library/upload_multiple_file_entries.jsp"&gt;https://github.com/liferay/liferay-portal/blob/7.2.x/modules/apps/document-library/document-library-web/src/main/resources/META-INF/resources/document_library/upload_multiple_file_entries.jsp&lt;/a&gt;&lt;br&gt;​​​​​​​&lt;br&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;pre&gt;&lt;code&gt;&amp;lt;aui:form name="fm1"&amp;gt;&amp;lt;/aui:form&amp;gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;&lt;pre&gt;&lt;code&gt;&lt;/code&gt;&lt;div class="lfr-dynamic-uploader"&gt;&lt;code&gt;&lt;/code&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;&lt;pre&gt;&lt;code&gt;&amp;lt;div class="lfr-upload-container" id="&amp;lt;portlet:namespace /&amp;gt;fileUpload"&amp;gt;&amp;lt;/div&amp;gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;&lt;pre&gt;&lt;code&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;&lt;pre&gt;&lt;code&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;&lt;pre&gt;&lt;code&gt;&amp;lt;aui:script use="liferay-upload"&amp;gt;&amp;lt;/aui:script&amp;gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;&lt;pre&gt;&lt;code&gt;new Liferay.Upload(&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;&lt;pre&gt;&lt;code&gt;{&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;&lt;pre&gt;&lt;code&gt;boundingBox: '#&amp;lt;portlet:namespace /&amp;gt;fileUpload',&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;&lt;pre&gt;&lt;code&gt;&amp;amp;lt;%&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;&lt;pre&gt;&lt;code&gt;DecimalFormatSymbols decimalFormatSymbols = DecimalFormatSymbols.getInstance(locale);&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;&lt;pre&gt;&lt;code&gt;%&amp;amp;gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;&lt;pre&gt;&lt;code&gt;decimalSeparator: '&amp;amp;lt;%= decimalFormatSymbols.getDecimalSeparator() %&amp;amp;gt;',&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;&lt;pre&gt;&lt;code&gt;deleteFile: '&amp;lt;liferay-portlet:actionurl name="/document_library/upload_multiple_file_entries"&amp;gt;&amp;lt;portlet:param name="&amp;lt;%= Constants.CMD %&amp;gt;" value="&amp;lt;%= Constants.DELETE_TEMP %&amp;gt;" /&amp;gt;&amp;lt;portlet:param name="folderId" value="&amp;lt;%= String.valueOf(folderId) %&amp;gt;" /&amp;gt;&amp;lt;/liferay-portlet:actionurl&amp;gt;',&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;&lt;pre&gt;&lt;code&gt;fileDescription: '&amp;amp;lt;%= StringUtil.merge(dlConfiguration.fileExtensions()) %&amp;amp;gt;',&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;&lt;pre&gt;&lt;code&gt;maxFileSize: '&amp;amp;lt;%= dlConfiguration.fileMaxSize() %&amp;amp;gt; B',&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;&lt;pre&gt;&lt;code&gt;metadataContainer: '#&amp;lt;portlet:namespace /&amp;gt;commonFileMetadataContainer',&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;&lt;pre&gt;&lt;code&gt;metadataExplanationContainer: '#&amp;lt;portlet:namespace /&amp;gt;metadataExplanationContainer',&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;&lt;pre&gt;&lt;code&gt;namespace: '&amp;lt;portlet:namespace /&amp;gt;',&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;&lt;pre&gt;&lt;code&gt;tempFileURL: {&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;&lt;pre&gt;&lt;code&gt;method: Liferay.Service.bind('/dlapp/get-temp-file-names'),&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;&lt;pre&gt;&lt;code&gt;params: {&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;&lt;pre&gt;&lt;code&gt;folderId: &amp;amp;lt;%= folderId %&amp;amp;gt;,&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;&lt;pre&gt;&lt;code&gt;folderName: '&amp;amp;lt;%= EditFileEntryMVCActionCommand.TEMP_FOLDER_NAME %&amp;amp;gt;',&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;&lt;pre&gt;&lt;code&gt;groupId: &amp;amp;lt;%= scopeGroupId %&amp;amp;gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;&lt;pre&gt;&lt;code&gt;}&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;&lt;pre&gt;&lt;code&gt;},&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;&lt;pre&gt;&lt;code&gt;tempRandomSuffix: '&amp;amp;lt;%= TempFileEntryUtil.TEMP_RANDOM_SUFFIX %&amp;amp;gt;',&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;&lt;pre&gt;&lt;code&gt;uploadFile: '&amp;lt;liferay-portlet:actionurl name="/document_library/upload_multiple_file_entries"&amp;gt;&amp;lt;portlet:param name="&amp;lt;%= Constants.CMD %&amp;gt;" value="&amp;lt;%= Constants.ADD_TEMP %&amp;gt;" /&amp;gt;&amp;lt;portlet:param name="folderId" value="&amp;lt;%= String.valueOf(folderId) %&amp;gt;" /&amp;gt;&amp;lt;/liferay-portlet:actionurl&amp;gt;'&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;&lt;pre&gt;&lt;code&gt;}&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;&lt;pre&gt;&lt;code&gt;);&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;&lt;pre&gt;&lt;code&gt;&lt;/code&gt;&lt;/pre&gt;&lt;pre&gt;&lt;code&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/body&gt;&lt;/html&gt;</summary>
    <dc:creator>Mohammed Yasin</dc:creator>
    <dc:date>2019-09-10T10:53:42Z</dc:date>
  </entry>
  <entry>
    <title>Liferay 7.2 - How to store images in my Database</title>
    <link rel="alternate" href="https://liferay.dev/c/message_boards/find_message?p_l_id=119785294&amp;messageId=115240073" />
    <author>
      <name>Fabio Carvalho</name>
    </author>
    <id>https://liferay.dev/c/message_boards/find_message?p_l_id=119785294&amp;messageId=115240073</id>
    <updated>2019-09-10T09:50:21Z</updated>
    <published>2019-09-10T09:50:21Z</published>
    <summary type="html">Hi,&lt;br /&gt;&lt;br /&gt;I want to add a feature to my website, but I am not sure what would be the best approach for this.&lt;br /&gt;&lt;br /&gt;I have created a portlet to add a Product Object to my database through a Form. The submit button calls an ActionURL and in my Java class I use the Service Builder to add the new Product to my database. This is working perfect! But I also would like to add images to this product creation. So my idea would be to have a Div on my portlet that let&amp;#39;s you upload multiple images with a preview and after the upload register the location of those images on my database to show them in the future.&lt;br /&gt;&lt;br /&gt;So, my questions are: &lt;br /&gt;Does Liferay have a dedicated folder where I could store my files uploaded? And how should I use them?&lt;br /&gt;&lt;em&gt;&lt;/em&gt;I don&amp;#39;t think that Liferay has a native multiple image upload widget, so what would be the best approach to add one of these?</summary>
    <dc:creator>Fabio Carvalho</dc:creator>
    <dc:date>2019-09-10T09:50:21Z</dc:date>
  </entry>
</feed>
