android上传图片到服务器,android的Activity和服务器那边的完整代码

jopen 11年前

服务器端servlet代码:

public void doPost(HttpServletRequest request, HttpServletResponse       response)     throws ServletException, IOException {         //获取输入流,是HTTP协议中的实体内容      ServletInputStream  sis=request.getInputStream();             File file = new File(request.getSession().getServletContext().getRealPath      ("/img/"),"img_"+0+".jpg");       for (int imgnum = 0;file.exists();imgnum++)       {        file  = new File(request.getSession().getServletContext().getRealPath      ("/img/"),"img_"+imgnum+".jpg");       }            //缓冲区            byte buffer[]=new byte[1024];            FileOutputStream fos=new FileOutputStream(file);            int len=sis.read(buffer, 0, 1024);            //把流里的信息循环读入到文件中            while( len!=-1 )            {                fos.write(buffer, 0, len);                len=sis.readLine(buffer, 0, 1024);            }            fos.close();            sis.close();   }


android客户端代码:
public static void uploadFile(String imageFilePath)      {        String actionUrl = "http://172.22.64.12:8080/UploadServer/ImageServlet";        try        {          URL url =new URL(actionUrl);          HttpURLConnection con=(HttpURLConnection)url.openConnection();                   con.setDoInput(true);          con.setDoOutput(true);          con.setUseCaches(false);                   con.setRequestMethod("POST");      DataOutputStream ds =  new DataOutputStream(con.getOutputStream());          File file = new File(imageFilePath);                   FileInputStream fStream = new FileInputStream(file);          int bufferSize = 1024;          byte[] buffer = new byte[bufferSize];              int length = -1;                   while((length = fStream.read(buffer)) != -1)          {                       ds.write(buffer, 0, length);          }      fStream.close();          ds.flush();      InputStream is = con.getInputStream();          int ch;          StringBuffer b =new StringBuffer();          while( ( ch = is.read() ) != -1 )          {            b.append( (char)ch );          }      ds.close();        }        catch(Exception e)        {         e.printStackTrace();        }             }