android上传文件代码

 /*  newName: 上传后在服务器上的文件名称
  *  uploadFile: 要上传的文件路径
  *  actionUrl:  服务器上对应的程序路径   */

private String newName = "image.jpg";
private String uploadFile = "/data/data/irdc.example9/image.jpg";
private String actionUrl = "http://127.127.0.1/upload/upload.jsp";

private void uploadFile()
{
    String end = "\r\n";
    String twoHyphens = "---";
    String boundary = "*****";
    URL url = new URL(actionUrl);
    HttpURLConnection con = (HttpURLConnection)url.openConnection();
    /*允许 Input、Output, 不使用Cache*/
    con.setDoInput(true);
    con.setDoOutput(true);
    /*设置传送的method=POST*/
    con.setRequestMethod("POST");
    /*setRequestProperty*/
    con.setRequestProperty("Connection", "Keep-Alive");
    con.setRequestProperty("Charset", "UTF-8");
    con.setRequestProperty("Content-Type", "multipart/form-data;boundary=" + boundary);
    /*设置DataOutputStream*/
    DataOutputStream ds = new DataOutputStream(con.getOutputStream);
    ds.writeBytes(twoHyphens + boundary + end);
    ds.writeBytes("Content-Disposition: form-data; " + "name=\"file1\";filename=\"" + newName + "\"" + end);
    ds.writeBytes(end);
    /*取得文件的FileInputStream*/
    FileInputStream fStream = new FileInputStream(uploadFile);
    /*设置每次写入1024bytes*/
    int bufferSize = 1024;
    byte[] buffer = new byte[buffersize];
    int length = -1;
    /*从文件读取数据至缓冲区*/
    while((length = fStream.read(buffer)) != -1)
    {
        /*将资料写入DataOutputStream中*/
        ds.write(buffer 0, length);
    }
    ds.writeBytes(end);
    ds.writeBytes(twoHyphens + boundary + twoHyphens + end);
    fStream.close();
    ds.flush();
    /*取得Response*/
    InputStream is = conn.getInputStream();
    int ch;
    StringBuffer b = new StringBuffer();
    while((ch = is.read()) != -1)
    {
        b.append((char)ch);
    }
    ds.close();
}

转载于:https://my.oschina.net/zhangjie830621/blog/137821

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值