Предполагая, что вы используете Джерси на клиенте и на стороне сервера, вот код, который вы можете расширить:
стороне сервера:
@POST
@Path("/")
@Produces(MediaType.TEXT_PLAIN)
@Consumes(MediaType.MULTIPART_FORM_DATA)
public Response uploadFile(final MimeMultipart file) {
if (file == null)
return Response.status(Status.BAD_REQUEST)
.entity("Must supply a valid file").build();
try {
for (int i = 0; i < file.getCount(); i++) {
System.out.println("Body Part: " + file.getBodyPart(i));
}
return Response.ok("Done").build();
} catch (final Exception e) {
return Response.status(Status.INTERNAL_SERVER_ERROR).entity(e)
.build();
}
}
Приведенный выше код реализует метод ресурса, который принимает Поста многофакторных (файлов) данных. Это также иллюстрирует, как вы можете выполнять итерацию по всем частям тела во входящем (многочастном) запросе.
Клиент:
final ClientConfig config = new DefaultClientConfig();
final Client client = Client.create(config);
final WebResource resource = client.resource(ENDPOINT_URL);
final MimeMultipart request = new MimeMultipart();
request.addBodyPart(new MimeBodyPart(new FileInputStream(new File(
fileName))));
final String response = resource
.entity(request, "multipart/form-data")
.accept("text/plain")
.post(String.class);
Приведенный выше код просто прикрепляет файл многочастного запрос и запускает запрос от к серверу. Для клиентского и серверного кода существует зависимость от библиотек Jersey и JavaMail. Если вы используете Maven, то они могут быть снесены с легкостью, со следующими зависимостями:
<dependency>
<groupId>com.sun.jersey</groupId>
<artifactId>jersey-core</artifactId>
<version>1.17</version>
</dependency>
<dependency> <!-- only on server side -->
<groupId>com.sun.jersey</groupId>
<artifactId>jersey-server</artifactId>
<version>1.14</version>
</dependency>
<dependency> <!-- only on client side -->
<groupId>com.sun.jersey</groupId>
<artifactId>jersey-client</artifactId>
<version>1.17</version>
</dependency>
<dependency>
<groupId>com.sun.jersey</groupId>
<artifactId>jersey-json</artifactId>
<version>1.17</version>
</dependency>
<dependency>
<groupId>javax.mail</groupId>
<artifactId>mail</artifactId>
<version>1.4.6</version>
</dependency>
Adjust версии зависимостей, необходимых
вы проверили ссылку.? http://www.mkyong.com/webservices/jax-rs/file-upload-example-in-jersey/ – KSHiTiJ
Thak вам эта ссылка полезна. Но в этой ссылке есть информация о том, как служба получает файл и как он загружает только файл. Моим требованием является то, как клиент будет называть этот файлUploadservice посредством отправки файла в качестве параметра .. то есть файл находится на стороне клиента. Он отправит файл в службу REST для какой-либо цели. –