浏览 5433 次
锁定老帖子 主题:使用httpclient上传文件
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2013-06-07
以前给后台业务系统交互时,组装多段请求时使用的是org.apache.http.entity.mime.content.FileBody对象保存文件对象透传,但是这样的话,服务器需要在本地生成临时文件,比较麻烦. ContentBody body = new FileBody((File) value); entity.addPart("pic", body);这样的话需要先生成本地文件,上传成功后再删除临时文件,相当繁琐. 今天偶然发现,可以使用org.apache.http.entity.mime.content.InputStreamBody.InputStreamBody(InputStream, String)类,直接将客户端的文件输入流拷贝一下就可以了.这样就省去了在本地生成临时文件的麻烦. ByteArrayInputStream bis = new ByteArrayInputStream(data); InputStreamBody isb = new InputStreamBody(bis, fileName); entity.addPart("pic", isb); 通过以上改造,省去了在本地生成临时文件的烦恼,并且使代码看起来更加直观. 这种方式适用于需要透传文件的地方.比如 "客户端"--"服务器"--"业务系统","客户端"最终要将文件上传到"业务系统",这时"服务器"就可以使用这种方法,直接透传,省时省力. 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |