需要下载apache公司下的HttpComponents项目下的HTTPCLIENT
----------地址为http://hc.apache.org/downloads.cgi
主要是用到了httpmime-4.1.2.jar包
android客户端:
以下是请求action的jsp表单(测试用)
(
<form action="AddFoodStyle" enctype="multipart/form-data" method="post">
<div style="width:300px;">
<s:textfield label="菜式名称" name="foodname"></s:textfield><br/>
<s:select name="foodstyle" list="list" label="菜式类别" listKey="Itemid" listValue="itemname" > </s:select><br/>
<s:textfield label="菜式价格" name="price"></s:textfield><br/>
<s:file label="菜式图片" name="foodimg"></s:file><br/>
<s:textarea label="菜式标签" name="foodtab" cols="20" cssStyle=""></s:textarea><br/>
<s:textfield label="菜式状态" name="state"></s:textfield><br/>
<s:submit value="添加"/>
</div>
</form>
模拟构造上面的请求表单:
private String url="http://192.168.2.189:8080/MyOrderMeal/AddFoodStyle";
HttpClient httpclient= new DefaultHttpClient();
HttpPost httpPost= new HttpPost(url);
MultipartEntity mulentity = new MultipartEntity(HttpMultipartMode.BROWSER_COMPATIBLE);
mulentity.addPart("foodname", new StringBody(foodname.getText().toString().trim()));
mulentity.addPart("foodstyle", new StringBody(foodstyle.getText().toString().trim()));
mulentity.addPart("price", new StringBody(foodprice.getText().toString().trim()));
//添加图片表单数据
FileBody filebody = new FileBody(this.image);
mulentity.addPart("foodimg",filebody );
mulentity.addPart("foodtab", new StringBody(foodtab.getText().toString().trim()));
mulentity.addPart("state", new StringBody("1"));
httpPost.setEntity(mulentity);
HttpResponse response = httpclient.execute(httpPost);
if(response.getStatusLine().getStatusCode()==HttpStatus.SC_OK)
{
makeToase("上传成功",true);
if(this.image.exists())
this.image.delete();
}
else
{
makeToase("上传失败",true);
}
)
服务端:action的配置
<action name="AddFoodStyle" class="com.ordermeal.xiao.action.AddFoodStyle">
<result name="success" type="redirect">/ShowAddFoodStyle</result>
</action>
action的编写
public class AddFoodStyle extends ActionSupport{
/**
*
*/
private static final long serialVersionUID = -8380963167787044860L;
private String foodname;
private Integer foodstyle;
private Double price;
//接收上传文件
private File foodimg;
private String foodimgFileName;
private String foodimgContentType;
private String foodtab;
private Integer state;
、、、、省略get set方法
@Override
public String execute() throws Exception {
FoodStyleDao fsd = DaoFactory.getFoodStyleDao();
FoodStyle foodstyleob= new FoodStyle();
foodstyleob.setFoodname(foodname);
foodstyleob.setMystyletype(foodstyle);
foodstyleob.setFoodprice(price);
foodstyleob.setImageurl(foodimgFileName);
foodstyleob.setFoodtab(foodtab);
foodstyleob.setFdstystate(state);
fsd.addFoodStyle(foodstyleob);
String path= ServletActionContext.getServletContext().getRealPath("/");
//保存上传文件
FileUtil.copyFile(foodimg, path+"/images/"+foodimgFileName);
return SUCCESS;
}
分享到:
相关推荐
以上步骤详细介绍了如何使用`HttpClient`在Android应用中上传图片至服务器。需要注意的是,实际项目中可能还需要处理异常、增加超时设置、优化网络请求等操作,以提高应用的稳定性和用户体验。 此外,随着技术的...
通过学习和理解这些代码,开发者可以更好地掌握如何在Android应用中利用HTTPClient与服务器进行数据交互。 总结来说,本项目通过具体的代码示例,深入浅出地介绍了Android中HTTPClient的使用,包括GET和POST请求的...
本篇将详细讲解如何利用Apache HttpClient及其相关的jar包在Android环境中进行文件上传。 首先,我们关注的是标题提到的两个jar包:“apache-mime4j-0.6.jar”和“httpmime-4.0.jar”。这两个jar包是HttpClient库的...
本教程将详细介绍如何利用HttpClient实现文件的上传与下载,并且实时监控进度,以便在UI上显示进度条。 首先,理解HttpClient的基本用法是至关重要的。HttpClient是Apache的一个组件,它提供了丰富的API来构建网络...
本教程将详细讲解如何利用HttpClient以及第三方MiME(Multipurpose Internet Mail Extensions)文件上传类库,在Android平台上实现文件上传并同时显示进度条。由于HttpClient已经在Android 6.0(API级别23)中被弃用...
本教程将深入探讨如何利用Apache的HttpClient库实现文件上传,并且在上传过程中提供进度条接口,以便用户可以直观地看到文件传输的进度。我们将不依赖任何第三方jar包,而是直接对httpmime源码进行改造。 首先,...
总之,Android中异步上传图片是通过异步任务框架(如AsyncTask)结合HTTP客户端库(如HttpClient)实现的。理解这一过程有助于开发高效、用户体验良好的Android应用。不过,随着技术的演进,开发者应关注最新的网络...
文件上传通常涉及到网络请求,Android提供了多种方式来实现,如使用HttpURLConnection、HttpClient(已废弃)或第三方库如Volley、OkHttp等。以OkHttp为例,它是一个高效的HTTP客户端,支持异步和同步请求。创建一个...
三、使用HttpClient上传图片 1. 添加依赖:在Gradle配置文件中引入HttpClient库。 2. 创建HTTP POST请求:使用`HttpPost`对象实例化请求,并设置URL。 3. 创建`MultipartEntity`或`MultipartEntityBuilder`:用于...
在Android开发中,文件上传是一项常见的任务,尤其是在构建应用程序时,如社交应用、云存储服务等,用户可能需要上传照片、视频或其他类型的文件。本文将详细介绍如何实现一个带有上传进度功能的Android文件上传实例...
这三者结合使用,可以有效地增强Android原生HTTPClient的功能,使其能够处理复杂的HTTP请求,尤其是多部分POST请求,这对于上传多个文件或数据片段到服务器来说是必不可少的。同时,通过HttpCore的高效连接管理,...
总结起来,Android利用HttpPost实现与服务器的通讯涉及网络访问机制、HTTP协议、HttpClient库的使用,以及异常处理等多个知识点。在实际开发中,要考虑到网络环境的复杂性,提供合适的错误处理和用户体验。同时,...
在图片上传中,开发者可能利用HttpClient来发起POST请求,将图片数据作为请求体发送到服务器。 3. **commons-logging-1.1.jar**:这个JAR文件是Apache Commons Logging库的1.1版本。Logging库提供了一个接口层,...
然后,**上传图片到服务器**通常使用HTTP或HTTPS协议,常见的库有Apache的`HttpClient`(已弃用),`Volley`,`Retrofit`,或`OkHttp`。以`OkHttp`为例,创建一个`RequestBody`实例,将图片文件转换成`RequestBody`...
- 微信上传图片时,通常会提供裁剪功能,允许用户调整图片大小。在Android中,我们可以使用`Bitmap.createBitmap()`和`Bitmap.createBitmapRegionDecoder()`等方法实现裁剪功能。 - 为了减少网络传输的时间和流量...
在Android平台上,通过HTTP协议上传文件是一项常见的任务,特别是在开发移动应用时,用户可能需要将本地照片、视频或其他数据发送到服务器。本篇文章将详细讲解如何利用`HttpURLConnection`类来实现在Android设备上...
在这里介绍如何利用HttpClient实现图片的上传和下载功能。 1 图片上传:上传图片时,首先获得图片的路径,创建文件,并将图片转化为字节流写入到request,并发送该请求。 客户端代码: File file = new File(...
在IT行业中,网络通信是应用程序开发的关键组成部分,尤其是在Android应用开发中。`httpclient`、`httpcore`、`httpmime`...开发者需要根据具体需求选择合适的技术栈,并熟悉其API,以便在项目中充分利用它们的优势。
"android上传文件jar"这个标题暗示我们这里涉及的是一个Android应用程序组件,它利用特定的库(jar文件)来处理文件上传到服务器的过程。描述中提到的"这个是android上传给服务器资源时需要的jar"进一步确认了这一点...
本文将深入探讨如何在Android中利用这两种方式以及HttpClient框架来提交参数给Web应用。 首先,GET和POST的主要区别在于它们处理数据的方式。GET方法通常用于获取资源,其参数附加在URL后面,易于观察但对数据长度...