java jersey 参数_Java Jersey如何使用文件作为参数上传文件

我在资源类中有一个方法uploadFile . 它调用一个方法,该方法将文件作为参数,然后在将所述部分写入磁盘之前将文件拆分为多个部分 .

我想知道如何为它编写客户端测试,假设可以在不使用@FormDataParam InputStream的情况下上传文件 . 因为在这种情况下我认为我不需要它 .

我已经看到很多用Jersey上传文件的例子,它将InputStream和FormDataContentDisposition作为@FormDataParam,但我不确定这是否是强制性的 .

@POST

@Path("/uploadfile/{file}")

@Consumes(MediaType.MULTIPART_FORM_DATA)

public Response uploadFile(@PathParam("file") File file, @FormDataParam("file") FormDataContentDisposition fileMetaData) throws IOException {

FileSplit.splitFile(file); //Write file to disk

String output = "File successfully uploaded";

return Response.status(200).entity(output).build();

}

//Method to write file to disk

public static void splitFile(File f) throws IOException {

int partCounter = 1;

int sizeOfFiles = (int) (f.length() / 3);

byte[] buffer = new byte[sizeOfFiles];

String fileName = f.getName();

try (FileInputStream fis = new FileInputStream(f);

BufferedInputStream bis = new BufferedInputStream(fis)) {

int bytesAmount = 0;

while ((bytesAmount = fis.read(buffer)) != -1) {

String filePartName = String.format("%s.%03d", fileName, partCounter++);

File newFile = new File("D:\\", filePartName);

try (FileOutputStream out = new FileOutputStream(newFile)) {

out.write(buffer, 0, bytesAmount);

}

}

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值