Android客户端上传文件到服务器端
16lz
2022-04-05
/** * 上传文件 */ public static String sendFile(String urlPath, String filePath, String newName) throws Exception { String end = "\r\n"; String twoHyphens = "--"; String boundary = "*****"; URL url = new URL(urlPath); HttpURLConnection con = (HttpURLConnection) url.openConnection(); /* 允许Input、Output,不使用Cache */ con.setDoInput(true); con.setDoOutput(true); con.setUseCaches(false); /* 设置传送的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(filePath); /* 设置每次写入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); /* close streams */ fStream.close(); ds.flush(); /* 取得Response内容 */ InputStream is = con.getInputStream(); int ch; StringBuffer b = new StringBuffer(); while ((ch = is.read()) != -1) { b.append((char) ch); } /* 关闭DataOutputStream */ ds.close(); return b.toString(); }
原帖地址:http://blog.csdn.net/lk_blog/article/details/7706348
更多相关文章
- Android的简单图形和view刷新
- Android(安卓)图片旋转(使用Matrix.setRotate方法)
- 杂记
- Android使用SAX解析XML(3)
- Android之日期时间选择器使用方法
- mtk android 背光设置
- Android(安卓)Animation动画详解
- android 为TextView的部分文字设置超链接样式并监听点击事件
- Android(安卓)Studio设置gradle代理