curl を使用してファイルを Web サービスにアップロードし、それらのファイルをデータベースに保存しようとしています。これまでのところ、テキスト ファイルでは問題なく動作していますが、画像が破損しています。
それで、 curl を使用してファイル logo.png をアップロードしているとしましょう:
curl -T D:\logo.png http://127.0.0.1:8080/my-web-service/resteasy/document/metadata?id=logo"&"contentType=IMAGE"&"httpType=image"/"png
私の Web サービスは、次のようにデータを消費します。
@Path("metadata")
@PUT
public void putDocument(
@QueryParam("id") String docId,
@DefaultValue("GENERIC_CONTENT") @QueryParam("contentType") String contentType,
@DefaultValue("text/html") @QueryParam("httpType") String httpType,
byte[] docContent) {
Document doc = new Document();
doc.setDocumentId(docId);
doc.setContentType(new RefContentType(ContentType.valueOf(contentType)));
doc.setHttpContentType(httpType);
doc.setContent(docContent);
doc = getDAO().save(doc);
LOG.info("Document saved successfully id : " + doc.getId());
したがって、setContent メソッドは、プレーン テキスト以外のものを含むバイト配列ではうまく機能しないというのが私の推測です。curl がアップロードを台無しにしているかどうか、または配列を正しく読み取っていないのは私の ejb かどうかを知るにはどうすればよいですか?
ご協力いただきありがとうございます。