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请求传上传文件(文件流做参)、下载文件、好使的。
使用了java httppost 上传FileEntity实体文件,服务器端用php接收客户端的上传文件。
使用java处理文件上传的底层实现流程以及java模拟post协议实现文件上传
主要介绍了JAVA通过HttpURLConnection 上传和下载文件的方法,非常具有实用价值,需要的朋友可以参考下
JAVA表单上传多个文件 java web form表单上传多个文件.zip
使用httpPost java实现文件上传转发。 使用MultipartFile[] files,@RequestParam Map,Object> map 接收
1.JAVA 监听文件夹变化 2.模拟POST提交文件流同步服务器文件
上传文件 </head> <form action="index.jsp?flag=1" method="post" enctype="multipart/form-data" name="form1"> 上传"> </form></td> if(null != request.getParameter("flag")){ SmartUpload ...
主要为大家详细介绍了java实现上传网络图片到微信临时素材,网络图片上传到微信服务器,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
java后台实现 get post 提交.zip
本文将从文件传输的基本原理入手,分析如何用 java进行文件的上传,并提出解决方案。 一、基本原理 通过 HTML 上载文件的基本流程如下图所示。浏览器端提供了供用户选择提交内容的界面(通常是一个表单),在用户...
实现从C#后台HTTP Post文件到JAVA后台 JAVA后台接收代码与普能表单上传接收代码一样,这里没有提供。
* PHP与Web页面交互 -----文件上传和下载 课程内容 文件上传 文件下载 一、文件上传 文件上传从本质上讲,就是将... 一、上传文件 <form enctype="multipart/form-data" method="post" action=“a.php" name="myform
在实际的开发中,经常会遇到需要上传文件到服务器的场景。对于Java开发者来说,使用Http协议进行文件上传是一种常见的方式。本文将介绍如何使用Java的HttpPost方法实现文件上传,并提供相关的代码示例。 二、文件...
Java利用HttpURLConnection发送post请求上传文件
VC上传文件post到web服务器(VC上传文件,图片或视频)+服务端接收文件源码(java)
基于java窗体的文件分割器 大文件也能分割 功能强大
文件上传: <form action="myServlet.ServletTest7" name="form2" method="post" ENCTYPE="multipart/form-data"> 上传"> </form>
Android OkHttp Post上传文件并且携带参数 这里整理一下 OkHttp 的 post 在上传文件的同时,也要携带请求参数的方法。 使用 OkHttp 版本如下: compile 'com.squareup.okhttp3:okhttp:3.4.1' 代码如下: protected...
模拟http请求实现文件上传,模拟doGet、doPost请求,实现信息发送