UploadPortletRequest and file size limits

General Blogs 2014/03/26 投稿者 Josef Šustáček Staff

Uploading files into portlet is quite common request these days and Liferay offers several ways how to achieve it. The simples way is to use plain HTML form upload and retrieve files on the server side using UploadPortletRequest. It does not need any JavaScript (if you don't want to), one however has to keep in mind that this approach has some limitations. One of these is the size of the file, which can result into the file (its binary content) not being available on the server side.

I'll try to highlight the hurdles we had to get over while implementing this approach on recent project. All examples are based on Liferay EE 6.1.10 ga1.

First part you need to write is the HTML form inside the JSP of your portlet. It shoudl look like following example:

Important is to make sure you:

  • set method="POST" and
  • enctype="multipart/form-data".

Otherwise your file's content will never be sent in the HTTP request body to the server.  Then your portlet code (action method) should look like:

Important parts related to file size:

  1. file may have exceeded the upload limit (100MB by default, depends on configuration)
    • see portal.properties -> com.liferay.portal.upload.UploadServletRequestImpl.max.size
    • there is no easy way how to get the size of the file (when it was too big), it seems to be simply ignored completely (uploadPortletRequest.getFile(paramName) returns null, uploadPortletRequest.getSize(paramName) returns 0).
    • so at least inform the user about the limit (see method validateFileParamNotEmpty())
  2. file may have been stored in memory only (when its < 1kB = < 1024 bytes)
    • then request.getFile(paramName) or request.getFile(paramName, false) would return file handle, but the file is not existing on the disk (was never written into given path), so you cannot read the binary data from it
    • either use request.getFile(paramName, true) or request.getFileAsStream(paramName)

Hope this helps.

Vydání Liferay 6.1 EE

Company Blogs 2012/02/22 投稿者 Josef Šustáček Staff

[English[Deutsch] [Español[Hrvatski] [中国的[Portuguese]

Je nám velkým potěšením oznámit vydání nové verze portálu Liferay – 6.1 EE! Liferay 6.1 EE nabízí firmám kompletní webovou platformu pro spolupráci, web content, management a rovněž nástroje umožňující vývoj řešení na míru.

V této verzi se můžete těšit mimo jiné na následující novinky:

  • Sdílení dokumentů prostřednictvím Liferay Sync – Liferay Sync zjednodušuje přístup k vašim souborům, můžete je tak mít snadno k dispozici kdykoliv a kdekoliv. Pomocí Liferay Sync jsou vaše soubory z Document Library automaticky synchronizovány mezi telefonem, počítačem i tabletem. A jelikož synchronizace probíhá oproti vašemu vlastnímu Liferay portálu – nemusíte mít obavu z bezpečnostních rizik, která byste museli brát v úvahu při použití veřejných cloudových řešení. A rovněž nejste omezováni počtem ani velkostí jednotlivých souborů! 
  • Kompletně obměněná Document Library – Document Library byla zásadně vylepšena! Mezi nejvýraznější změny patři:
    • Automatické náhledy – Rychlý náhled do obsahu vašich dokumentů, obrázků a videí, ještě dříve než je stáhnete!
    • Typy dokumentů definované dle potřeb společnosti – Vytvořte si vaše vlastní typy dokumentů a přizpůsobte si tak Liferay portál unikátním potřebám vašeho podnikání! Veškerá dostupná metadata, která jste spolu s dokumentem uložili, jsou automaticky spravována a vždy k dispozici!
    • Intuitivní ovládání – Uživatelské rozhraní bylo kompletně přepracováno a nově obsahuje prvky známé především z desktopových aplikací – drag & drop, vícenásobné výběry a kontextová menu.
  • Méně kódování a více hotové práce pomocí portletů Kaleo Forms a Workflow Designer – Kaleo Forms a Workflow designer umožňují vašim uživatelům tvořit bez hlubších technických znalostí komplexní formuláře založené na wokrflow. Uživatelé mohou snadno upravovat definice jednotlivých procesů a reagovat tak na stále se měnící požadavky ve vašem podnikání, a to bez zásahu IT oddělení. 
  • Více verzí jedné webové prezentace – Potřebujete pracovat na nové verzi vašich webových stránek a přitom stále udržovat a aktualizovat současnou prezentaci? Žádný problém. Vylepšená funkce stagingu v novém Liferay portálu vám umožňuje současně pracovat na několika verzích té samé stránky. Více týmů zároveň může snadno vytvářet, spravovat a publikovat odlišné verze té samé webové prezentace.  
  • Seznamy, seznamy a zase seznamy – Jste už unaveni neustálým nalepováním lístečků s úkoly kolem vašeho monitoru? Začněte používat nové Dynamic Data Lists dostupné v Liferay portálu a sdílejte vaše seznamy se svými spolupracovníky.
  • Mobilní stránky snadno a rychle – Všichni už jste o tom slyšeli: Nejprve mobilní verze, standardní web až poté. Více a více uživatelů přistupuje na vaše stránky pomocí mobilních zařízení či tabletů. Liferay poskytuje nástroje, jak portál přizpůsobit nejrůznějším koncovým zařízením tak, aby zkušenost všech uživatelů byla co nejoptimálnější.
  • Stránky přesně podle vašeho gusta pomocí User Customizable Sites – Správci vaší webové prezentace mohou zvolit určité stránky, či dokonce pouze jejich části, a nabídnout je k perzonalizaci koncovým uživatelům. Tito pak mohou přidávat, měnit a odebírat obsah a aplikace z těchto částí a ponechat přitom kontrolu nad zbytkem obsahu plně v rukou správců.
  • Správa rozsáhlé sítě propojených stránek – Potřebujete spravovat stovky velmi podobných webových stránek? Stránky v Liferay portálu, které jsou vytvořeny ze šablony stránek, mohou obsahovat spojení s touto šablonou. Jakékoliv změny, které budou poté provedeny v šabloně, se automaticky projeví v jakékoliv stránce, která s ní je spojená. Tento postup umožňuje správci snadno a efektivně spravovat stovky stránek a přitom úpravy provádět pouze na jednom místě.
  • Integrace s vaším současným DMS řešením – Využíváte v současnosti více různých úložišť dokumentů? Sjednoťte přístup ke všem vašim dokumentům prostřednictvím portálu Liferay. Liferay poskytuje možnost propojení na Sharepoint, Documentum a další CMIS poskytovatele.

A ještě mnohem, mnohem více! Liferay 6.1 EE obsahuje více jak 100 nových funkcí spolu s více než 400 vylepšeními. Pro více informací nahlédněte do našeho uživateského manuálu.

Pokud jste připraveni nový Liferay portál vyzkoušet, můžete si stáhnout zkušební verzi.

該当件数: 2 件