由于多部分信息,解压缩上传的文件失败

时间:2012-04-10 17:41:41

标签: java rest jersey resteasy multipart

当我将其作为带有jersey客户端的多部分上传时,解压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);

在调用新的ZipFile时,打开zip文件时总是出错,我想知道为什么。所以我尝试将流输出到字符串ang得到以下结果: --Boundary_1_3753023_1334078932448 内容类型:multipart / form-data 内容处理:表格数据; NAME = “文件” ... ZIP内容...... --Boundary_1_3753023_1334078932448 -

所以我的猜测是,--Boundary_1_3753023_1334078932448--使我的zip文件损坏,因此无法打开它。

我是否正确使用了多部分?或者我怎样才能摆脱 - 边界的东西来成功地解压缩我的文件...(我知道 - 对于多部分帖子来说 - 边界的东西是正确的,但不知何故,必须有可能获得帖子的内容。 ..)

如果您需要任何进一步的信息,请告诉我,我会发布。

提前谢谢!

TJ

0 个答案:

没有答案