1

ジャージークライアントでマルチパートとしてアップロードするときに、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 のものを取り除くにはどうすればよいですか... ..)

さらに情報が必要な場合は、お知らせください。投稿します。

事前にt​​hx!

TJ

4

0 に答える 0