Foros de discusión

Максимальный аплоад файла

Ilya L, modificado hace 11 años.

Максимальный аплоад файла

New Member Mensajes: 5 Fecha de incorporación: 30/08/11 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
thumbnail
Alexey Melnikov, modificado hace 11 años.

RE: Максимальный аплоад файла

Regular Member Mensajes: 108 Fecha de incorporación: 27/03/12 Mensajes recientes
Из запроса может не выйти получить размер файла,
Если в первом запросе multipart/data-form указан размер, тогда его можно получить через
request.getContentLength() или reqest.getHeaders("Content-Length")
. Остальные части запроса обычно содержат только набор байтов, а слушатель ожидает в этих байтах набор символов означающий конец передачи.

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