Отправка больших изображений кусками

Я отправляю изображения из своего клиента Android в службу отдыха java jersey, и мне это удалось. Но моя проблема заключается в том, что когда я пытаюсь отправить большие изображения, скажем,> 1 МБ, это занимает больше времени, поэтому мне нравится отправлять изображения в CHUNKS< /strong> может ли кто-нибудь помочь мне в этом. Как отправить (POST) поток изображений в CHUNKS на сервер


person Wilson    schedule 05.06.2014    source источник
comment
ответил на скорости, потому что это очень обширный вопрос. дайте мне обратную связь! наслаждаться   -  person jeorfevre    schedule 06.06.2014


Ответы (2)


использованные ссылки:

  • код сервера и вызов клиента
  • имя серверной функции

    /*** SERVER SIDE CODE****/
    
     @POST
     @Path("/upload/{attachmentName}")
     @Consumes(MediaType.APPLICATION_OCTET_STREAM)
        public void uploadAttachment(
                @PathParam("attachmentName") String attachmentName, 
                @FormParam("input") InputStream attachmentInputStream) {               
        InputStream content = request.getInputStream();
    
    // do something better than this
    OutputStream out = new FileOutputStream("content.txt");
    byte[] buffer = new byte[1024];
    int len;
    while ((len = in.read(buffer)) != -1) {
        // whatever processing you want here
        out.write(buffer, 0, len);
    }
     out.close();
    
     return Response.status(201).build();
    }
    
    
          /**********************************************/
    
    
     /** 
       CLIENT SIDE CODE
     **/
        // .....
      client.setChunkedEncodingSize(1024);
      WebResource rootResource = client.resource("your-server-base-url");
        File file = new File("your-file-path");
       InputStream fileInStream = new FileInputStream(file);
        String contentDisposition = "attachment; filename=\"" + file.getName() + "\"";
        ClientResponse response = rootResource.path("attachment").path("upload").path("your-file-name")
              .type(MediaType.APPLICATION_OCTET_STREAM).header("Content-Disposition", contentDisposition)
             .post(ClientResponse.class, fileInStream);
    

Вы должны разделить файл на клиенте и восстановить часть файла на сервере. и после этого вы должны объединить файлы вместе. Взгляните на разбить/объединить файл на coderanch

Наслаждаться ! :)

person jeorfevre    schedule 06.06.2014

Доступен другой путь, если вы не хотите слишком много кодировать, рассмотрите возможность использования: file загрузить apache это здорово! :)

person jeorfevre    schedule 06.06.2014