Java模拟post实现图片上传

来源:互联网 发布:微信公众号树洞源码 编辑:程序博客网 时间:2024/05/17 20:22
    public class Post {         public static String readFileAsString(String fileName) throws Exception {          FileInputStream fis = new FileInputStream(fileName);          BufferedInputStream in = new BufferedInputStream(fis);          byte buffer[] = new byte[256];          StringBuffer picStr=new StringBuffer();          BASE64Encoder base64=new BASE64Encoder();          while (in.read(buffer)>= 0){              picStr.append(base64.encode(buffer));//进行64位编码          }      fis.close();      fis=null;      in.close();      in=null;      buffer=null;      return picStr.toString();  }  public static void main(String[] a) {         try {          File file=new File("G:\\图片\\loopwallpaper\\137.jpg");          //将文件读成字符串          String picString=readFileAsString(file.toString());          //URLEncode          picString="&uname=yc&pwd=a&picdata="+URLEncoder.encode(picString, "UTF-8");        // form域的数据.form域的数据必须以链接形式发送         InetAddress addr = InetAddress.getByName("218.196.14.220");         // 建立连接         Socket socket =new Socket(addr,8080);        String url="/JavaHttp/loginServlet.do";         // 创建数据提交数据流         DataOutputStream dos=new DataOutputStream(socket.getOutputStream());             String message="POST "+url+" HTTP/1.1\r\n"            +"Host:localhost \r\n"               +"Cache-Control:no-cache \r\n" +"User-Agent: MSIE6.0; \r\n"              +"Content-Type:application/x-www-form-urlencoded \r\n"               +"Content-Length: "+picString.length()+" \r\n\r\n" //报头以两个\n作为结束标志              +"Connection:Close \r\n\r\n";            //+"Connection: Keep-Alive \r\n\r\n";        message+=picString;        byte buffer[]=message.getBytes();             dos.write(buffer);          dos.flush();          // 创建web服务器响应的数据流         BufferedReader httpResponse = new BufferedReader(new InputStreamReader(socket.getInputStream(), "utf-8"));         String lineStr = "";         while ((lineStr = httpResponse.readLine()) != null) {             System.out.println(lineStr);         }        dos.close();          socket.close();     } catch (Exception e) {          e.printStackTrace();      } }     

}

public class UploadServlet extends HttpServlet {
private static final long serialVersionUID = 1L;

public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {    doPost(request,response); }public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {    System.out.println("uname: "+request.getParameter("uname"));    System.out.println("pwd: "+request.getParameter("pwd"));    String picdata=request.getParameter("picdata");    BASE64Decoder base64=new BASE64Decoder();      //64位解码      byte[] buffer=base64.decodeBuffer(picdata);     //写进文件      FileOutputStream fos=new FileOutputStream("D:\\photo.jpg");      fos.write(buffer);      fos.flush();      fos.close();      fos=null;  }

}

0 0
原创粉丝点击