`

java Post 上传文件

阅读更多
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模拟post请求传上传文件(文件流做参)、下载文件、好使的。

    Java 上传文件到 SharePoint

    本篇文章将深入探讨如何使用Java来上传文件到SharePoint。 首先,我们需要了解Java中用于文件操作的基本类,如`java.io.File`,它提供了创建、读取、写入和删除文件的方法。此外,为了与SharePoint交互,我们需要...

    java http post 上传文件到php web server

    使用了java httppost 上传FileEntity实体文件,服务器端用php接收客户端的上传文件。

    java上传文件jar

    在Java开发中,上传文件是一项常见的任务,尤其是在构建Web应用程序时。标题提到的"java上传文件jar"实际上指的是两个关键的Java库,它们是Apache Commons IO和Apache Commons FileUpload。这两个库提供了强大的文件...

    java 监听本地文件自动上传服务器

    本篇文章将详细探讨如何使用Java实现本地文件监听,并自动将其上传至服务器,以实现文件同步功能。 首先,让我们从“JAVA 监听文件夹变化”这个知识点开始。Java提供了一种称为`WatchService`的机制,它允许程序...

    java ssh上传文件代码

    1. **Struts2上传文件**: Struts2提供了`CommonsFileUploadInterceptor`拦截器,用于处理文件上传请求。在Action类中,需要定义一个`File`或`FileItem`类型的属性来接收上传的文件,并在struts.xml配置文件中启用...

    java post文件流的操作

    #### 3.1 获取上传文件 - `MultipartHttpServletRequest`:这是一个扩展了普通`HttpServletRequest`的接口,用于处理多部分数据,如表单字段和文件。 - `getFile()`:通过该方法可以获取上传的文件对象`...

    基于JAVA文件上传

    通过重写`doPost`方法,我们可以捕获POST请求,这是上传文件时常用的HTTP方法。 2. **HTTP协议**:HTTP协议定义了客户端(如浏览器)和服务器之间的通信规范。在文件上传时,通常使用POST方法,因为GET方法无法传输...

    java 实现上传文件到远程服务器

    ### Java 实现上传文件到远程服务器(Spring MVC) 在现代软件开发中,文件上传功能是十分常见的需求之一,尤其在Web应用中。本篇文章将详细介绍如何利用Java编程语言结合Spring MVC框架来实现文件的远程上传功能。...

    java 上传文件,实时获取上传进度.

    - 文件大小限制:为了避免过大文件导致服务器资源耗尽,应设置上传文件大小的最大限制。 - 文件类型检查:确保上传的文件类型符合预期,防止恶意文件上传。 - 文件重命名:上传后的文件应进行重命名,防止路径...

    java上传文件接口调用源码案例

    在Java编程中,文件上传是常见的任务之一,特别是...通过这个"java上传文件接口调用源码案例",我们可以学习到如何在Java环境中实现文件上传功能,这在开发Web应用、移动应用或者后端服务时都是一项基础且重要的技能。

    JAVA表单上传多个文件 java web form表单上传多个文件.zip_form表单post提交

    在Java Web开发中,表单上传是常见的功能之一,尤其是当用户需要上传多个文件时。本文将详细讲解如何实现这个功能,主要涉及HTML表单、Servlet、MVC框架(如Spring MVC)以及文件处理的相关知识。 1. HTML表单设置...

    java 实现大文件上传

    ### Java实现大文件上传知识点详解 #### 一、文件上传的重要性及Java中的处理方式 文件上传作为B/S架构中的一项核心功能,在很多应用场景下都扮演着至关重要的角色。例如,在线文档分享、用户资料上传、多媒体文件...

    java实现多文件异步上传

    ### Java实现多文件异步上传知识点详解 在现代Web应用开发中,文件上传是一个非常常见的需求,尤其是在涉及图片、文档等多媒体数据的应用场景下。为了提高用户体验,异步上传技术得到了广泛的应用。本文将深入探讨...

    Java后端HttpClient Post提交文件流 及服务端接收文件流

    HttpClient Post提交多文件及多个普通参数,已经封装成工具类。 需传入 要请求的url 普通参数map 例 map.put("param1","张三"); 需要传入的文件流map 其中key为文件名 服务端接收无乱码。

    Java版Linux文件上传下载、windows本地文件上传下载

    在Java编程环境中,实现Linux与Windows之间的文件上传和下载是一项常见的任务,特别是在分布式系统和跨平台应用中。本文将深入探讨如何使用Java技术实现在Linux和Windows之间进行文件的互传,以及创建一个HTML界面来...

    上传图片和上传文件的java代码

    8. **文件权限控制**: 根据应用需求,可能需要设置上传文件的访问权限,比如只允许特定用户查看或下载。 通过上述步骤,你可以使用Java实现一个基本的文件上传功能,包括图片和文档。这个过程涵盖了从接收HTTP请求...

    java Swing 文件批量上传 DEMO 源代码

    总的来说,这个Java Swing 文件批量上传DEMO涵盖了Java GUI编程、文件I/O、网络编程、多线程以及用户交互等多个方面,对于初学者来说,是一个很好的实践项目,可以帮助他们深入理解Java Swing的应用及文件上传的实现...

    使用httpPost实现文件上传转发

    使用httpPost java实现文件上传转发。 使用MultipartFile[] files,@RequestParam Map,Object> map 接收

Global site tag (gtag.js) - Google Analytics