需要下载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;

}

更多相关文章

  1. Android开发入门之网络通信(网络图片查看器)
  2. android图片拖动Gallery
  3. Android(安卓)TextView中显示图片
  4. Android(安卓)- 视频提取图片方法
  5. Android压缩图片到100K以下并保持不失真的高效方法 - feicien的
  6. 【Android(安卓)开发教程】ImageSwitcher
  7. android 获取视频,图片缩略图
  8. Android(安卓)Glide Google 推荐加载图片框架(仅获取BitMap)
  9. android 添加视频、图片、录音上传(一)

随机推荐

  1. android视图层的设计 javacode版本 有图
  2. Android Studio添加第三方库遇到的一些坑
  3. 关于 android 子进程域名解析失败的问题
  4. Android中级进阶FAQ
  5. VideoView重绘
  6. Android通过加载其他应用的Dex文件破解关
  7. Android测试方法总结
  8. 如何在Android Studio中添加RecyclerView
  9. Android svg 绘制三角形
  10. Android的有关EditText的能多行显示但无