直接上代码吧!
package cn.java.basic.upload;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.mime.MultipartEntity;
import org.apache.http.entity.mime.content.FileBody;
import org.apache.http.entity.mime.content.StringBody;
import org.apache.http.impl.client.DefaultHttpClient;
public class HttpUpload {
private static final String UPLOADURL = "http://192.168.0.181:8099/upload";
private static final String KEY_USERNAME = "username";
private static final String KEY_MD5ORSHA1 = "md5orsha1";
private static final String KEY_FILE = "myfile";
private String username;
private String md5orsha1;
private String filePath;
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getMd5orsha1() {
return md5orsha1;
}
public void setMd5orsha1(String md5orsha1) {
this.md5orsha1 = md5orsha1;
}
public String getFilePath() {
return filePath;
}
public void setFilePath(String filePath) {
this.filePath = filePath;
}
public HttpUpload(String username, String md5orsha1, String filePath) {
super();
this.username = username;
this.md5orsha1 = md5orsha1;
this.filePath = filePath;
}
public String postFile() throws ClientProtocolException, IOException {
FileBody fileBody = null;
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost(UPLOADURL);
File file = new File(filePath);
if (file != null) {
fileBody = new FileBody(file);
}
StringBody usernameStringBody = new StringBody(username);
StringBody md5orsha1StringBody = new StringBody(md5orsha1);
MultipartEntity reqEntity = new MultipartEntity();
reqEntity.addPart(KEY_USERNAME, usernameStringBody);
reqEntity.addPart(KEY_MD5ORSHA1, md5orsha1StringBody);
reqEntity.addPart(KEY_FILE, fileBody);
httppost.setEntity(reqEntity);
System.out.println("执行: " + httppost.getRequestLine());
HttpResponse response = httpclient.execute(httppost);
System.out.println("statusCode is "
+ response.getStatusLine().getStatusCode());
HttpEntity resEntity = response.getEntity();
System.out.println("----------------------------------------");
System.out.println(response.getStatusLine());
if (resEntity != null) {
System.out.println("返回长度: " + resEntity.getContentLength());
System.out.println("返回类型: " + resEntity.getContentType());
InputStream in = resEntity.getContent();
String returnValue = inputStream2String(in);
System.out.println("returnValue:" + returnValue);
return returnValue;
}
if (resEntity != null) {
resEntity.consumeContent();
}
return null;
}
public static String inputStream2String(InputStream in) throws IOException {
StringBuffer out = new StringBuffer();
byte[] b = new byte[4096];
for (int n; (n = in.read(b)) != -1;) {
out.append(new String(b, 0, n));
}
return out.toString();
}
public static void main(String[] args) throws ClientProtocolException,
IOException {
String username = "10000";
String md5orsha1 = "11111111111111111111111111111112";
String filePath = "e:\\b.jpg";
HttpUpload hu = new HttpUpload(username, md5orsha1, filePath);
System.out.println(hu.postFile());
}
}
输出结果:
使用返回的地址去访问图片
工程需要如下包:
附上jar包吧!
- 大小: 3.8 KB
- 大小: 60.4 KB
- 大小: 2.2 KB
分享到:
相关推荐
小小测试项目包含了4个知识点,其中包含了http协议向服务器传输数据的post和get方法,包含了httpclient传输方法,httpclient上传文件到服务器的方法,
5个目标文件,演示Address EJB的实现,创建一个EJB测试客户端,得到名字上下文,查询jndi名,通过强制转型得到Home接口,getInitialContext()函数返回一个经过初始化的上下文,用client的getHome()函数调用Home接口...
使用HttpClient开源项目提交参数给服务器 4> 网络--通过HTTP协议实现文件上传 第五天 1> 网络--通过HTTP协议发送XML数据,并调用webservice实现手机号归属地查询 2> 网络--通过HTTP协议实现多线程断点续传下载 3> ...
使用HttpClient开源项目提交参数给服务器 4> 网络--通过HTTP协议实现文件上传 第五天 1> 网络--通过HTTP协议发送XML数据,并调用webservice实现手机号归属地查询 2> 网络--通过HTTP协议实现多线程断点续传下载 3...
填写接口需要的参数 使用的是name-value的形式 4.RequestBody 可以选择本地文件上传测试 一般来说,这些就可以方便地处理绝大多数的简单后端测试了,但是在涉及到RequestB
5个目标文件,演示Address EJB的实现,创建一个EJB测试客户端,得到名字上下文,查询jndi名,通过强制转型得到Home接口,getInitialContext()函数返回一个经过初始化的上下文,用client的getHome()函数调用Home接口...
1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合...
ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...
ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...
ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...
ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...
ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...
ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...
ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...
ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...
ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...
ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...
ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...