上传图片时,传递给@FormDataParam的输入流类型是什么?
关于Jersey图片上传接口中@FormDataParam输入流类型的解答
嘿,这个问题我太熟悉啦!在你给出的Jersey上传接口代码里,标注@FormDataParam("image")的InputStream参数,实际接收到的具体输入流类型是**org.glassfish.jersey.message.internal.ReaderInputStream**——这是Jersey框架内部实现的一个InputStream子类,专门用来处理multipart/form-data请求里的文件内容读取。
不过说实话,你完全不用纠结这个具体的实现类,因为它是标准java.io.InputStream的子类,你只需要按照InputStream的通用API(比如read()、close()这些方法)来操作就足够了,不管底层是啥实现,都能正常读取上传的图片字节数据。
额外给你提个小技巧:如果想获取上传文件的元数据(比如文件名、文件大小这些信息),可以搭配FormDataContentDisposition一起使用,示例代码如下:
@POST @Path("/upload") @Consumes("multipart/form-data") @Produces("text/html") public void uploadImage(@FormDataParam("image") InputStream inputStream, @FormDataParam("image") FormDataContentDisposition fileDisposition, @Suspended AsyncResponse asyncResponse, @Context HttpServletRequest servletRequest) { String fileName = fileDisposition.getFileName(); // 获取上传的文件名 // 后续业务逻辑... }
内容的提问来源于stack exchange,提问作者MysticForce
相关产品推荐
相关产品推荐

