【发布时间】:2011-12-26 20:18:11
【问题描述】:
我目前正在实现使用 jersey rest 上传文件的功能。我想设置允许的最大文件大小,这对我来说似乎是一个很常见的要求。
我的第一种方法是使用 Jerseys FormDataContentDisposition,它应该包含我可能需要的有关文件的所有信息。但是除了文件名之外的所有信息似乎都丢失了,包括文件大小。
这是我的休息方法:
@POST
@Path("uploadFile/")
@Consumes("multipart/form-data")
@Produces("text/html")
public String handleDocumentUpload(
@FormDataParam("file") InputStream uploadedInputStream,
@FormDataParam("file") FormDataContentDisposition fileDetail)
{
if(fileDetail.getSize() > MAX_FILE_SIZE)
{
throw new IllegalArgumentException(
"File is to big! Max size is " + MAX_FILE_SIZE);
}
// ...more file handling logic
}
这不起作用,因为返回的大小始终为“-1”!
我使用一个极其简单的html表单进行文件上传:
<html>
<head>
<title>File upload</title>
</head>
<body>
<p>Choose file</p>
<form enctype="multipart/form-data" method="POST" action="uploadFile">
<input type="file" name="file" size="50">
<input type="submit" value="Upload">
</form>
</body>
</html>
现在回答我的问题;您将如何使用球衣强制执行文件大小限制?必须有一些简单的方法,而不必求助于将整个文件读入内存(ByteArray)然后获取实际大小,对吗?
【问题讨论】:
-
只是为了澄清,除了不能限制文件大小之外,它就像一个魅力。
-
目前适用于球衣 2,以下帖子解决了问题stackoverflow.com/questions/6301973/…
标签: java rest file-upload jersey multipartform-data