request.getContentLength() возвращает 0, если размер файла превышает 2 ГБ
Использование загрузки файла в моем проекте как:
<s:form id="uploadData" action="UploadAction" namespace="xyz" validateFields="false" method="post" enctype="multipart/form-data">
Но метод request.getContentLength() возвращает правильное значение для менее чем 2 ГБ и 0 для всего, что выше него.
Вероятной причиной является тип данных длины содержимого как int. Есть ли другой способ, где параметр request: content-length может быть преобразован в тип long для поддержки загрузок размером более 2 ГБ.
Пожалуйста, расскажите нам, как преобразовать заголовок запроса длины контента в long, чтобы поддерживать загрузку файлов более 2 ГБ.
1 ответ
Это потому, что метод getContentLength() в API сервлета определяется как int
, На самом деле, он должен вернуться -1
для файлов (запросов) больше 2gb.
Если вы используете Servlet API 3.1 (например, Tomcat 8), вы можете использовать метод getContentLengthLong().