当我将其作为带有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