Foros

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

Vista combinada Visión Plana Vista de árbol
Discusiones [ Anterior | Siguiente ]
toggle
Ilya L
Максимальный аплоад файла
21 de diciembre de 2012 0:51
Respuesta

Ilya L

Ranking: New Member

Mensajes: 5

Fecha de incorporación: 30 de agosto de 2011

Mensajes recientes

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

Имеется форма (во 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: Максимальный аплоад файла
21 de diciembre de 2012 1:36
Respuesta

Alexey Melnikov

Ranking: Regular Member

Mensajes: 108

Fecha de incorporación: 27 de marzo de 2012

Mensajes recientes

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

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