Forums

Home » Liferay Portal » Pусский

Combination View Flat View Tree View
Threads [ Previous | Next ]
toggle
Ilya L
Максимальный аплоад файла
December 21, 2012 12:51 AM
Answer

Ilya L

Rank: New Member

Posts: 5

Join Date: August 30, 2011

Recent Posts

Здравствуйте!

Имеется форма (во viewMode), с которой отправляется файл, соотвественно enctype="multipart/form-data", чтобы поймать параметры в processAction делаю:

UploadPortletRequest uploadRequest = PortalUtil.getUploadPortletRequest(actionRequest);
uploadRequest.getParameter("test");

Если загружать большой файл, который по размерам будет превышать com.liferay.portal.upload.UploadServletRequestImpl.max.size=104857600, то возникнет исключение:
08:24:06,054 ERROR [UploadServletRequestImpl:101] org.apache.commons.fileupload.FileUploadBase$SizeLimitExceededException: the request was rejected because its size (172353357) exceeds the configured maximum (104857600)
org.apache.commons.fileupload.FileUploadBase$SizeLimitExceededException: the request was rejected because its size (172353357) exceeds the configured maximum (104857600)
at org.apache.commons.fileupload.FileUploadBase$FileItemIteratorImpl.<init>(FileUploadBase.java:914)
at org.apache.commons.fileupload.FileUploadBase.getItemIterator(FileUploadBase.java:331)
at org.apache.commons.fileupload.FileUploadBase.parseRequest(FileUploadBase.java:349)
at org.apache.commons.fileupload.servlet.ServletFileUpload.parseRequest(ServletFileUpload.java:126)
at com.liferay.portal.upload.LiferayFileUpload.parseRequest(LiferayFileUpload.java:56)
at com.liferay.portal.upload.UploadServletRequestImpl.<init>(UploadServletRequestImpl.java:72)
at com.liferay.portal.util.PortalImpl.getUploadServletRequest(PortalImpl.java:3015)
at com.liferay.portal.util.PortalImpl.getUploadPortletRequest(PortalImpl.java:3040)
at com.liferay.portal.util.PortalUtil.getUploadPortletRequest(PortalUtil.java:951)
..............................................

Вопрос в следующем:
Могу ли я обработать это исключение и получить параметры приходящие с формы (которые текстовые а не сам файл), если использовать
actionRequest.getParameter("test") вместо uploadRequest.getParameter("test")
то здесь null?

Я понимаю, что можно поменять com.liferay.portal.upload.UploadServletRequestImpl.max.size=104857600, но равно файл могут загрузить очень большой и все равно возникнет исключение.
P.S. Используется Liferay 5.2.2
Alexey Melnikov
RE: Максимальный аплоад файла
December 21, 2012 1:36 AM
Answer

Alexey Melnikov

Rank: Junior Member

Posts: 98

Join Date: March 27, 2012

Recent Posts

Из запроса может не выйти получить размер файла,
Если в первом запросе multipart/data-form указан размер, тогда его можно получить через
1request.getContentLength() или reqest.getHeaders("Content-Length")
. Остальные части запроса обычно содержат только набор байтов, а слушатель ожидает в этих байтах набор символов означающий конец передачи.

Иначе только через try { } catch отлавливать exception.