ジャージークライアントでマルチパートとしてアップロードするときに、zipファイルを解凍するのに少し問題があります。ファイルをアップロードするには、次のコードを使用します。
FormDataMultiPart form = new FormDataMultiPart().field("file", file,
MediaType.MULTIPART_FORM_DATA_TYPE);
service.path(DSCRM_IMPORT_UPLOAD).type(MediaType.MULTIPART_FORM_DATA)
.accept(MediaType.TEXT_PLAIN).post(ClientResponse.class, form);
サービスは WebResource です。
サーバー側では、私のコードは次のようになります。
@Path("/upload")
@Consumes("multipart/form-data")
@POST
public Response importData(@FormDataParam("file") InputStream file)
throws Exception {
File newFile = new File("/temp.zip");
final OutputStream out = new FileOutputStream(newFile);
try {
ByteStreams.copy(file, out);
} finally {
out.close();
}
ZipFile zip = new ZipFile(newFile);
new ZipFile を呼び出すと、zip ファイルを開くときに常にエラーが発生し、その理由を知りたいと思っていました。そこで、ストリームを文字列 ang に出力しようとしましたが、次の結果が得られました: --Boundary_1_3753023_1334078932448 name="file" ... ZIP CONTENT ... --Boundary_1_3753023_1334078932448--
だから私の推測では、 --Boundary ... --Boundary_1_3753023_1334078932448-- は私のzipファイルを破損させて開くことができないということです。
マルチパートを正しく使用していますか? または、ファイルを正常に解凍するために --boundary のものを取り除くにはどうすればよいですか... ..)
さらに情報が必要な場合は、お知らせください。投稿します。
事前にthx!
TJ