2012-03-15 2 views
1

Я реализую простой графический загрузчик изображений в GWT. Перед успешной загрузки, есть некоторые основные валидация, которые должны быть выполнены, как:Практические рекомендации по загрузке файлов Java

  1. Размер
  2. Тип файла

Что такое лучшее место, чтобы сделать эту проверку?
Согласно моим знаниям, проверка размера и типа может выполняться только на стороне сервера.
I. Сервлет (MyUploadServlet extends HttpServlet) выполняет фактическую загрузку файла.
Это единственное место? Какова будет наилучшая практика для проведения таких проверок?

Кроме того, если я могу получить код подтверждения (тип и размер файла изображения), это будет здорово :)

ответ

1

Проверка может быть лучше сделано на стороне сервера. В основном я бы рекомендовал вам 2-х шагов для проверки размера:

1) Подтвердите HTTP-заголовки для длины содержимого. request.getContentLength()

2) Если заголовки недоступны, выполните проверку фактического размера при чтении входного потока. Поэтому, если вы достигнете предела, вы можете выбросить исключение.

На стороне клиента gwt вы можете проверить исключение и показать соответствующую ошибку.

Определение типа файла может быть не столь простым. Вы можете просто проверить расширение имени файла или использовать проверки типа файла после того, как файл фактически загружен на сервер.

+0

Спасибо, Алексей. Что меня больше интересовала лучшая практика (с точки зрения организации кода), мы должны следовать для такой проверки, как должен быть другой класс проверки достоверности? или он может находиться в одном сервлете? откуда должны присутствовать значения валидации - файл с пружиной или где-то еще? Надеюсь, что смогу объяснить на этот раз :) – user1270392

+0

Если вы используете весну, вы можете использовать весенний mvc для загрузки. В конфигурации весны вы должны определить MultipartResolver: ' <свойство name = "maxUploadSize" value = "100000" /> 'Таким образом, весна-структура позаботится о валидации. –

+0

Это хорошая статья на тему http://www.mkyong.com/spring-mvc/spring-mvc-file-upload-example/ –

0

HTML 5 имеет разнообразную поддержку API файлов, что означает, что некоторые браузеры смогут предоставить вам размер файлов для загрузки, прежде чем разговаривать с сервером. Если вы можете предположить что-то о браузерах, которые вы используете, вы можете найти что-то по линиям html 5 file api size и посмотреть, сможете ли вы использовать его в своем случае.

Смежные вопросы