java Post 上传文件 博客分类: 上传文件 模拟HTTP文件上传
程序员文章站
2024-03-24 19:46:46
...
package com.ckn.web.main; import java.io.BufferedReader; import java.io.DataInputStream; import java.io.File; import java.io.FileInputStream; import java.io.InputStreamReader; import java.io.OutputStream; import java.net.HttpURLConnection; import java.net.URL; public class JavaDirectUpload { public static void uploadFile(String urlStr, String formName,String fileName) { try { // 换行符 final String newLine = "\r\n"; final String boundaryPrefix = "--"; // 定义数据分隔线 String BOUNDARY = "========7d4a6d158c9"; // 服务器的域名 URL url = new URL(urlStr); HttpURLConnection conn = (HttpURLConnection) url.openConnection(); // 设置为POST情 conn.setRequestMethod("POST"); // 发送POST请求必须设置如下两行 conn.setDoOutput(true); conn.setDoInput(true); // 设置请求头参数 conn.setRequestProperty("connection", "Keep-Alive"); conn.setRequestProperty("Charsert", "UTF-8"); conn.setRequestProperty("Content-Type","multipart/form-data; boundary=" + BOUNDARY); OutputStream out = conn.getOutputStream(); // 上传文件 File file = new File(fileName); StringBuilder sb = new StringBuilder(); sb.append(boundaryPrefix); sb.append(BOUNDARY); sb.append(newLine); // 文件参数,photo参数名可以随意修改 sb.append("Content-Disposition: form-data;name=\""+formName+"\";filename=\""+ fileName + "\"" + newLine); sb.append("Content-Type:application/octet-stream"); // 参数头设置完以后需要两个换行,然后才是参数内容 sb.append(newLine); sb.append(newLine); // 将参数头的数据写入到输出流中 out.write(sb.toString().getBytes()); // 数据输入流,用于读取文件数据 DataInputStream in = new DataInputStream(new FileInputStream(file)); byte[] bufferOut = new byte[1024]; int bytes = 0; // 每次读1KB数据,并且将文件数据写入到输出流中 while ((bytes = in.read(bufferOut)) != -1) { out.write(bufferOut, 0, bytes); } // 最后添加换行 out.write(newLine.getBytes()); in.close(); // 定义最后数据分隔线,即--加上BOUNDARY再加上--。 byte[] end_data = (newLine + boundaryPrefix + BOUNDARY + boundaryPrefix + newLine).getBytes(); // 写上结尾标识 out.write(end_data); out.flush(); out.close(); //定义BufferedReader输入流来读取URL的响应 BufferedReader reader = new BufferedReader(new InputStreamReader( conn.getInputStream())); String line = null; while ((line = reader.readLine()) != null) { System.out.println(line); } } catch (Exception e) { System.out.println("发送POST请求出现异常!" + e); e.printStackTrace(); } } public static void main(String[] args){ String wxUrlStr="https://api.weixin.qq.com/cgi-bin/media/uploadimg?access_token=auto_581"; String formName="media"; String fileFullPath="D:\\Users\\ex-chengyibo600\\Desktop\\TRANSFILE\\newCarLoan\\1447738780798_Jellyfish.jpg"; uploadFile(wxUrlStr,formName,fileFullPath); } }
推荐阅读
-
java Post 上传文件 博客分类: 上传文件 模拟HTTP文件上传
-
java Post 上传文件 博客分类: 上传文件 模拟HTTP文件上传
-
java+ftp文件上传注意事项 博客分类: Java
-
ext 编辑form 多文件上传 显示图片 博客分类: ext ext
-
使用JS设置文件上传输入框为只读属性 博客分类: javaScript技术 StrutsJavaScriptCSS
-
使用JS设置文件上传输入框为只读属性 博客分类: javaScript技术 StrutsJavaScriptCSS
-
Java网络编程一个基础案例分析,基于TCP协议的客户端上传文件给服务器端(单线程版)
-
Servlet中下载已上传的文件(已测试) 博客分类: Java JavaServletdownload
-
关于web上传文件到另一台服务器 博客分类: 我的文章 WebWebServiceLinuxUnixWindows
-
Java大文件上传(Android亦可) 博客分类: Coding