HttpClient PostMethod模拟带文件上传+普通字段的http请求(可解决文件为网络文件的问题)

代码示例:

postMethod = new PostMethod("http://api.t.sina.com.cn/statuses/upload.xml");
Part[] parts = {new StringPart("source", "695132533"), new StringPart("status", URLEncoder.encode(status, "utf-8")),
new FilePart("pic", new File("1.jpg"))};
postMethod.setRequestEntity(new MultipartRequestEntity(parts, postMethod.getParams()));

上例中,MultipartRequestEntity封装了普通字段和文件字段。

另注:由于自己的应用中,文件块不是在本地的,而是来源于网络,所以FilePart的创建,改为以下代码:

URL url = new URL(picUrl);URLConnection connection = url.openConnection();
InputStream is = connection.getInputStream();
/**  这么写不对
int length = is.available();
byte[] buffer = new byte[length];
is.read(buffer);
*/
//应该这样写
ByteArrayOutputStream baos = new ByteArrayOutputStream();
int len = 0;
byte[] b = new byte[1024];
while ((len = is.read(b, 0, b.length)) != -1) {
    baos.write(b, 0, len);
}
byte[] buffer =  baos.toByteArray();
new FilePart("pic", new ByteArrayPartSource("pic", buffer))

				
时间: 2025-01-30 22:04:38

HttpClient PostMethod模拟带文件上传+普通字段的http请求(可解决文件为网络文件的问题)的相关文章

java文件上传到两个服务器?怎么解决

问题描述 java文件上传到两个服务器?怎么解决 他给我的有两个服务器ip 和端口号.图片不是从本地上传的,是从web上传到服务器 解决方案 地址有了,程序上传不容易么.几乎跟本地实现一样,你实现了本地上传然后改个地址就OK了 解决方案二: 那个服务器还有密码,怎么该?

扫描扫出文件上传漏洞,求大神帮忙解决

问题描述 文件上传漏洞中危漏洞URLhttp://www.xxxx.com参数表单名称:loginForm,提交URL:http://www.xxxx.com详情原始:GET/../../../xxxMain.action?reload=0&siteName=xxxHTTP/1.1User-Agent:Mozilla/4.0(compatible;MSIE8.0;WindowsNT5.1;Trident/4.0;CIBA;.NETCLR2.0.50727;.NETCLR3.0.04506.30)

IIS FTP部分文件上传报错451的原因及解决方法_win服务器

最近部署一个基于IIS7的ftp服务器,添加一个组的用户具有上传及读取权限,使用Flashfxp软件测试了不同文件的上传下载,均可以正常使用.由于之前建FTP出现过使用浏览器访问不能验证用户的问题,于是也用浏览器进行测试,访问正常.正高兴呢.结果测试传几个文件遇到问题了.部分文件可以正常上传,但部分报错,具体错误提示如下: 找了下资料,发现原来是万国码问题,具体解决方法如下: 在FTP管理器的右边点击"高级设置"--将"允许UTF8"改为[False],如下图:

文件上传 pring-文件上传怎么实现读个文件同时上传???

问题描述 文件上传怎么实现读个文件同时上传??? 一个input可以上传多个文件吗??如何实现??最好有代码!!!! 解决方案 http://blog.163.com/thylx133@126/blog/static/60151875201142455229288/ 解决方案二: http://blog.csdn.net/chenxiang199055/article/details/7000237 解决方案三: <input type="file" multiple />

SpringMVC文件上传接口设计与实现

1 前两篇文章的铺垫 1.1 SpringMVC文件上传源码分析前言 1.2 apache fileupload源码分析 2 整体的包结构 首先看下整体的包的结构,如下图 总共分成3大块,分别如下 2.1 org.springframework.web.multipart 存放Spring定义的文件上传接口以及异常,如 MultipartException对用户抛出的解析异常(隐藏底层文件上传解析包所抛出的异常) 也就指明了,这个体系下只能抛出这种类型的异常,MaxUploadSizeExcee

jQuery.uploadify文件上传组件实例讲解_jquery

1.jquery.uploadify简介 在ASP.NET中上传的控件有很多,比如.NET自带的FileUpload,以及SWFUpload,Uploadify等等,尤其后面两个控件的用户体验比较好,无刷新,带上传进度等等.在最近的短信平台开发中,使用Uploadify进行文件上传. Uploadify官网地址是:http://www.uploadify.com/ 可满足项目开发需求. 下载地址:http://www.uploadify.com/wp-content/uploads/files/

文件上传是存在硬盘上,还是存在数据库中?

问题描述 文件上传是存在硬盘上,还是存在数据库中? 如果有比较多的文件上传,上千个文件,大小2-3MB,是存在硬盘上,还是存在数据库中? 存在硬盘上,路径保存在数据库中,是比较方便,但是存在一台server上出问题怎么办?是不是应该转换成google二进制存到数据库(MySQL)中? 解决方案 直接备份文件系统啊,这是最基本的,存到数据库很费劲的.而且你的文件还特别多.不划算了,. 解决方案二: 附件多媒体室存硬盘,其它的文字数据存数据库 解决方案三: 比较通行的办法是,将文件存在硬盘中,数据库

文件上传——终结者Ⅰ

上传|终结者 PHP代码:-------------------------------------------------------------------------------- <?/*------------------------------------------------------------------------------------类名:Lwguploadandquery说明:sql语句执行和文件上传类,是Lwgupload类的子类作者:龙卫国网络user:lwg8

PHP实例:实现文件上传的程序源码

如何实现文件上传? 以下为引用的内容: <HTML> <HEAD> <TITLE>文件上传界面</TITLE> </HEAD> <BODY><TABLE><CENTER> <? if($UploadAction){$UploadAction=0; $TimeLimit=60; /*设置超时限制时间默认时间为 30s,设置为0时为不限时 */ set_time_limit($TimeLimit); If((