/** * 推送文件 * @param uploadUrl 推送url * @param bbyte 文件字节数组 * @param fileName 文件名 * @param parmas post请求的其他参数 * @return */ public static String uploadFile(String uploadUrl, byte[] bbyte,String fileName,Map<String,Object> parmas) { String end = "\r\n"; String twoHyphens = "--"; String boundary = "MyBoundary" + System.currentTimeMillis(); try { URL url = new URL(uploadUrl); HttpURLConnection httpURLConnection = (HttpURLConnection) url.openConnection(); httpURLConnection.setDoInput(true); httpURLConnection.setDoOutput(true); httpURLConnection.setUseCaches(false); httpURLConnection.setRequestMethod("POST"); httpURLConnection.setRequestProperty("Connection", "Keep-alive"); httpURLConnection.setRequestProperty("Charset", "UTF-8"); httpURLConnection.setRequestProperty("Content-Type", "multipart/form-data; boundary=" + boundary); DataOutputStream dos = new DataOutputStream(httpURLConnection.getOutputStream()); for (Map.Entry<String,Object> entry : parmas.entrySet()){ String key = entry.getKey(); String value = (String) entry.getValue(); dos.writeBytes(twoHyphens + boundary + end); dos.writeBytes("Content-Disposition: form-data; name=\""+key+"\"" + end + end); dos.writeBytes(value); dos.writeBytes(end); } dos.writeBytes(twoHyphens + boundary + end); dos.writeBytes("Content-Disposition: form-data; name=\"image\"; filename=\""+fileName+"\"" + end); String contentType = "Content-Type: application/octet-stream" + end + end; dos.write(contentType.getBytes()); dos.write(bbyte); dos.writeBytes(end); String endStr = twoHyphens + boundary + twoHyphens + end; dos.write(endStr.getBytes()); // 读取服务器返回结果 InputStream is = httpURLConnection.getInputStream(); InputStreamReader isr = new InputStreamReader(is, "utf-8"); BufferedReader br = new BufferedReader(isr); String result = br.readLine(); is.close(); return result; } catch (Exception e) { e.printStackTrace(); } return ""; }