• androidHttpClient上传信息(包括图片)到服务端


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

        }
     
     
    //参考 http://blog.csdn.net/liwei3gjob/article/details/7870353
  • 相关阅读:
    Activity传递数据
    Java JDK环境变量配置
    Java与IOS日期格式
    第十四篇 ANDROID的 BLUETOOTH 实现机制--中介模式和代理模式
    第十五篇 Android 的Backup服务管理机制--助手模式
    第十八篇 ANDROID的声音管理系统及服务
    使用Unsafe来实现自定义锁
    rabbitMQ实现推迟队列
    简单分布式锁的实现
    [原创]通过切面与分布式锁实现合并相同请求
  • 原文地址:https://www.cnblogs.com/zhwl/p/2727305.html
Copyright © 2020-2023  润新知