使用Jersey上传文件:FormDataContentDisposition为null
我试图用Jersey来实现文件上传,所以我按照这个例子:http://www.mkyong.com/webservices/jax-rs/file-upload-example-in-jersey/,它可以很好地处理HTML页面。 现在我将它改编成我的应用程序,代码如下:
public Response uploadFile(
@FormDataParam("file") InputStream uploadedInputStream,
@FormDataParam("file") FormDataContentDisposition fileDetail)
throws IOException {
Response.Status respStatus = Response.Status.OK;
if (fileDetail == null) {
respStatus = Response.Status.INTERNAL_SERVER_ERROR;
} else {
try {
initPath();
if (fileDetail.getSize() > OntoWebStudioUtil
.getUploadFileLimit()) {
respStatus = Response.Status.NOT_ACCEPTABLE;
return Response.status(respStatus).build();
}
writeToFile(uploadedInputStream, tempDirectory);
} catch (Exception e) {
respStatus = Response.Status.INTERNAL_SERVER_ERROR;
e.printStackTrace();
}
}
return Response.status(respStatus).build();
}
但是通过调试视图,一旦我上传了我的照片并按下按钮发送,然后到达这里,uploadedInputStream和fileDetail就为空。 所以我什么都不能做......我是一个Servlet和REST的初学者,所以请放纵一下。
谢谢。
我发现它为什么不起作用:这是因为您在FormDataParameter(“myForm”)之后选择的名称必须与您在HTML表单中选择的名称相同(name =“myForm”)
所以,
@FormDataParam("myForm") InputStream uploadedInputStream,
@FormDataParam("myform") FormDataContentDisposition fileDetail)
表单必须是
<form action=".../rest/fileupload" method="post" enctype="multipart/form-data">
<p>
Select a file : <input type="file" name="myForm"/>
</p>
<input type="submit" value="Upload It" />
</form>
希望它能帮助像我这样的其他初学者:)
链接地址: http://www.djcxy.com/p/91555.html上一篇: File upload with Jersey : FormDataContentDisposition is null