сохранить загруженный файл с GWT - PullRequest
1 голос
/ 18 августа 2010

Я использую org.apache.commons.fileupload для загрузки.

public void doPost(HttpServletRequest request, HttpServletResponse response)  throws ServletException, IOException {

     boolean isMultipart = ServletFileUpload.isMultipartContent(request);
     GWT.log("is multipart? " + Boolean.toString(isMultipart), null);

     ServletFileUpload upload = new ServletFileUpload();

     try{
            FileItemIterator iter = upload.getItemIterator(request);

            while (iter.hasNext()) {
                    FileItemStream item = iter.next();
                    String name = item.getFieldName();
                    InputStream stream = item.openStream() ;

                    /**
                    * Save th uploaded file
                    */

            }
     }
    catch(Exception e){
            e.printStackTrace();
    }
 }

Как сохранить загруженный файл?

Ответы [ 2 ]

2 голосов
/ 18 августа 2010

Я думаю, что это может вам помочь.

if (!item.isFormField()) {
    String fieldName = item.getFieldName();
    String fileName = item.getName();
    String contentType = item.getContentType();
    boolean isInMemory = item.isInMemory();
    long sizeInBytes = item.getSize();

  File saveTo = new File("/file_uploads/" + fileName);
  try {
    item.write(saveTo);
    ...
  }
  catch (Exception e){
    ...
  }

Имейте в виду, что загруженный файл уже может быть автоматически сохранен с помощью org.apache.commons.fileupload

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

// Create a factory for disk-based file items
DiskFileItemFactory factory = new DiskFileItemFactory();

// Set factory constraints
factory.setSizeThreshold(yourMaxMemorySize);
factory.setRepository(yourTempDirectory);

// Create a new file upload handler
ServletFileUpload upload = new ServletFileUpload(factory);

// Set overall request size constraint
upload.setSizeMax(yourMaxRequestSize);

// Parse the request
List /* FileItem */ items = upload.parseRequest(request);

Все, что вам нужно знать об org.apache.commons.fileupload, находится здесь: Использование FileUpload

2 голосов
/ 18 августа 2010

Это похоже на серверный код, который (кроме сервлетов GWT-RPC) вообще не специфичен для GWT.В GWT.log() нет необходимости - замените его обычным вызовом регистрации и обработайте загрузку, как обычно, в коде, не относящемся к GWT, поскольку это то, что есть.

Вот полезный примериспользования apache fileupload для начала работы .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...