ジャージーウェブサービスを使用して画像をアップロードしようとしています。ジャージークライアントを使用して画像をアップロードしています。 は、入力ストリームを受け取り、サーバ上に画像をアップロードするジャージーウェブサービスです。それは私が直接JSPマルチパートフォームのアップロードを使用して、それを呼び出したときに正常に動作しますが、私はジャージクライアントジャージー画像アップロードクライアント
以下@POST
@Path("/upload")
@Consumes(MediaType.MULTIPART_FORM_DATA)
public Response uploadFile(
@FormDataParam("file") InputStream uploadedInputStream,
@FormDataParam("file") FormDataContentDisposition fileDetail) throws ServiceException
{
// upload code
}
を使用して画像をアップロードする際に失敗した画像をアップロードするジャージーのクライアントで、クライアントコードから呼び出された別のWebサービスの一部でありますPHPの休憩クライアントとこのジャージークライアントの呼び出し、画像をアップロードするためにジャージーウェブサービスを呼び出す場合、私はジャージーのWebサービスを呼び出すと画像は正常に動作しますが、ジャージクライアントを使用してアップロードすると動作しません。
ClientConfig config = new DefaultClientConfig();
Client client = Client.create(config);
client.setChunkedEncodingSize(1024);
WebResource wr = client
.resource("http://localhost:8080/rest/upload");
String contentDisposition = "attachment; filename=\""
+ fileDetail.getName() + "\"";
FormDataMultiPart form = new FormDataMultiPart();
ContentDisposition contentDisposition2 = new ContentDisposition(contentDisposition);
form.setContentDisposition(contentDisposition2);
FormDataBodyPart fdp = new FormDataBodyPart("file",
uploadedInputStream, MediaType.MULTIPART_FORM_DATA_TYPE);
form.bodyPart(fdp);
ClientResponse response = wr.type(MediaType.MULTIPART_FORM_DATA).post(
ClientResponse.class, form)
私はここで何が欠けているのかわかりません。おかげさまで
あなたが「働いていない」ものを明確にすることができ手段? 'uploadedInputStream'に' FileInputStream'型を使って正確なコードをテストしました。うまくいきました。私が変更することの1つは(MediaType.APPLICATION_OCTET_STREAM_TYPEへの 'fdp'の' MediaType.MULTIPART_FORM_DATA_TYPE'です) –
アップロードされたInputStreamをジャージwebserviceに渡していますが、同じものは含んでいません私たちがジャージークライアントから渡したものと同じコンテンツタイプです。 –
フォームデータは、要求の主なコンテンツタイプです。しかし、フォームデータにはパーツが付属しており、各パーツには独自のコンテンツタイプがあります。ファイルはオクテットストリームでフォームデータではありません –