`
wyp0523
  • 浏览: 23702 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Java 两台服务器之间传递文件

阅读更多
引用
用HttpClient来模拟POST提交表单


引用
发送端进行提交的方法

package com.wangyp.demo;

import java.io.InputStream;

import org.apache.commons.httpclient.DefaultMethodRetryHandler;
import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.NameValuePair;
import org.apache.commons.httpclient.methods.PostMethod;
import org.apache.struts.upload.FormFile;

public class SendImageService {
	/**
	 * 此方法是根据FormFile编写的,可以自定义图片名称.如果接收端设定连接时需要用户名和密码则需要填写用户名与密码
	 * 
	 * @param ff
	 *            FormFile
	 * @param ImageName
	 *            图片名称
	 * @throws Exception
	 */
	public static void sendImage(FormFile ff, String ImageName) throws Exception {
		HttpClient hc = new HttpClient();

		PostMethod method = new PostMethod("http://192.168.0.156:8081/memo_ReceiveImages/receiveImages.do");
		NameValuePair[] nvp = { new NameValuePair("ImageName", ImageName), new NameValuePair("username", "baoku"),
				new NameValuePair("password", "19840523") };

		method.addRequestHeader("Content-Type", "text/html;charset=UTF-8");
		// method.getParams().setContentCharset("GB2312");
		DefaultMethodRetryHandler retryhandler = new DefaultMethodRetryHandler();

		retryhandler.setRequestSentRetryEnabled(false);

		retryhandler.setRetryCount(10);

		method.setQueryString(nvp);
		method.setRequestBody(ff.getInputStream());
		method.setMethodRetryHandler(retryhandler);

		hc.executeMethod(method);

		InputStream is = method.getResponseBodyAsStream();

		NameValuePair pair = method.getParameter("");

		String status = pair.getValue();
	}
}

引用
接收端进行接收的方法
package com.wangyp.struts.service;

import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;

public class ReceiveImageImpl {

	/**
	 * 根据文件流的方式来获取传递的图片,可以设定图片名称
	 * 
	 * @param is
	 *            IO流
	 * @param ImageName
	 *            图片名称
	 * @return 
	 * @throws Exception
	 */
	public static void receiveImage(InputStream is, String ImageName) throws Exception {
		OutputStream os = null;
		try {
			String path = ReceiveImageImpl.class.getResource("/").toString().replace("file:/", "").replace("classes/",
					"").replace("/WEB-INF", "")
					+ "Image/" + ImageName + ".jpg";

			os = new FileOutputStream(path);

			// 8k缓存数据
			byte[] buffer = new byte[1024 * 8];
			// 设置读进缓存的字节数
			int len;
			while ((len = is.read(buffer)) != -1) {
				// 将缓存数据写入磁盘
				os.write(buffer, 0, len);
			}
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			// 关闭输出流
			os.close();
			// 关闭输入流
			is.close();
		}
	}
}


分享到:
评论

相关推荐

    java实现两台服务器间文件复制的方法

    总之,Java实现两台服务器间文件复制的方法涉及网络编程和文件I/O,理解这些基本概念是实现跨服务器文件复制的关键。在实际项目中,应根据需求选择合适的解决方案,并确保数据传输的安全性和可靠性。

    Java文件同步程序

    Java文件同步程序是一种用于在多台服务器之间保持文件一致性的重要工具。这个程序允许用户高效地进行文件传输,确保数据在各个服务器之间的实时更新,对于分布式系统、云计算环境以及需要跨设备共享文件的团队来说尤...

    Java Socket PC端传输文件简易服务器客户端

    Java Socket编程是网络编程中的重要组成部分,主要用于在两台计算机之间建立双向通信通道,实现数据的交换。在Java中,Socket类和ServerSocket类是进行网络通信的核心工具,它们提供了客户端与服务器之间的连接和...

    java与c++传文件程序

    本项目实现了一个基于Socket的文件传输方案,其中Java作为服务端,C++作为客户端,使得Windows环境下的文件能够在两个程序之间安全、高效地传递。以下是对这个程序设计和实现的关键知识点的详细说明: 1. **Java ...

    java上传文件到ftp服务器

    在Java编程环境中,将文件上传至FTP(File Transfer Protocol)服务器是一项常见的任务,特别是在Web应用程序开发中,如Spring MVC、Spring Boot或传统的J2EE应用。以下是对这一过程的详细阐述: 1. FTP简介: FTP...

    java socket 聊天之传文件

    Socket是TCP/IP协议族的一部分,它为两台机器间的应用程序提供了一种建立并维护连接的方法,通过这种连接,数据可以在两个应用程序之间传输。在Java中,`java.net.Socket`类和`java.net.ServerSocket`类是进行Socket...

    Java实现Linux的远程拷贝

    在IT行业中,Java是一种广泛应用的编程语言,它不仅在企业级应用中表现出色,也能够实现各种系统级别的功能,如远程文件操作。本篇将详细探讨如何使用Java来实现Linux系统的远程拷贝功能。 首先,要实现Linux的远程...

    JAVA Socket编程实现文件上传

    1. **Java Socket基础**:Socket是TCP/IP协议的应用层接口,用于实现两台机器之间的数据传输。在Java中,`java.net.Socket`和`java.net.ServerSocket`类是进行Socket通信的核心。ServerSocket监听特定端口,等待...

    SFTP定时扫描本地文件上传到Linux服务器

    8. **权限和安全性**:在上传文件到Linux服务器时,需要考虑文件的权限设置,确保上传后的文件权限符合服务器的安全策略。 综上所述,这个项目涉及了多个IT领域的知识,包括网络协议、文件系统操作、Java编程、...

    FTP服务器 java

    Socket编程是基于TCP/IP协议的,它为两台计算机之间提供了一种可靠的通信连接。在FTP服务器中,Socket用于建立客户端和服务器之间的连接,传递数据和控制命令。以下是实现FTP服务器的关键步骤: 1. **服务器端设置*...

    java实现的http服务器

    Socket提供了在网络中两台计算机间建立连接并交换数据的机制。在服务器端,我们需要创建一个ServerSocket监听特定端口,等待客户端的连接请求。一旦有连接请求到来,服务器会创建一个新的Socket实例与客户端建立连接...

    java后台实现 get post 提交.zip

    在Java后端开发中,GET和POST是两种最常见的HTTP请求方法,它们用于客户端与服务器之间的数据交互。了解如何在Java中实现这两种请求是至关重要的,尤其是对于构建Web应用程序。本资料"java后台实现 get post 提交....

    java文件传输工具

    这个工具提供了简单易用的界面,让用户能够方便地在两台计算机之间共享和移动文件。以下是对该工具核心特性和技术实现的详细解释: 1. **点对点传输**:在P2P网络中,每个节点既是服务端也是客户端,可以直接与其他...

    Java 局域网文件传输

    1. **Socket编程**:Java中的Socket类是进行网络通信的基础,它提供了两台计算机之间通信的端点。在局域网文件传输中,发送方创建ServerSocket监听特定端口,接收方通过Socket连接到该端口建立连接。Socket通信通常...

    java文件p2p传输

    这种技术的核心是通过套接字(Socket)通信,它在两台计算机之间建立连接,使得文件能够被分割并以多线程的方式传输,从而提高文件传输速度。 1. **Java P2P基础** Java P2P文件传输利用P2P网络架构,其中每个节点...

    Java 基于Swing的FTP上传下载程序

    FTP协议是一种用于网络上文件传输的标准协议,它允许用户在两台计算机之间交换文件。FTP客户端(如这个Java程序)与FTP服务器建立连接,通过一系列命令进行登录、目录浏览、文件上传和下载操作。在这个程序中,用户...

    java局域网内的文件传输

    Socket是TCP/IP协议族的一部分,它提供了两台计算机之间通信的端点。因此,我们的文件传输客户端(FileTranClient)会创建一个Socket连接到服务器端(FileTranServer),通过这个连接来发送和接收数据。 1. **TCP...

    JAVA文件传输P2P源码

    JAVA的Socket编程是实现P2P通信的关键,它提供了在两台计算机之间建立TCP连接的能力,使得数据可以流经这个连接进行传输。 3. **文件I/O操作**: 在JAVA中,文件的读取和写入是通过java.io包下的FileInputStream和...

Global site tag (gtag.js) - Google Analytics