zoukankan      html  css  js  c++  java
  • 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
  • 相关阅读:
    sparql学习sparql示例、dbpedia在线验证
    中国绿卡
    逾期率的水有多深,你知道吗?
    ICO和区块链区别
    What are the benefits to using anonymous functions instead of named functions for callbacks and parameters in JavaScript event code?
    Link static data in sql source control
    sql data compare
    viewbag
    多态的实际使用
    win10 sedlauncher.exe占用cpu处理
  • 原文地址:https://www.cnblogs.com/zhwl/p/2727305.html
Copyright © 2011-2022 走看看