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