Java编程如何将A服务器中的文件发送到B服务器的指定文件夹。急急急求大神直接附上详细代码,非常感谢你了

如题所述

给一种方式做参考,我这边类似。是将A作为客户端,上传文件到服务器B,服务器B以struts接受请求做处理。使用httpclient。

/**
     * 将文件上传到服务端,并接收其返回信息
     * @param client DefaultHttpClient
     * @param url 服务器url:如:http://localhost:8080/test/upload.action
     * @param filePath 文件路径
     * @param params 上传参数
     * @param encode 编码集,主要用来解析返回的response中的信息
     * @return    解析出的返回信息,如服务器那边的成功提示:“success”
     */
    public static String sendHttpClientPostToUpload(DefaultHttpClient client, String url, String filePath, 
     Map<String, String> params, String encode){
    
     MultipartEntity mpEntity = new MultipartEntity();
        if (params != null && !params.isEmpty()) {
            for (Map.Entry<String, String> entry : params.entrySet()) {
                // 参数名
                StringBody par;
try {
par = new StringBody(entry.getValue().toString());
mpEntity.addPart(entry.getKey(), par);
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
            }
        }
        
        // 图片
        if (!filePath.equals("")) {
            FileBody file = new FileBody(new File(filePath));
            mpEntity.addPart("file", file);
        }
        
        // 使用HttpPost对象设置发送的URL路径
        HttpPost post = new HttpPost(url);
        
        post.setEntity(mpEntity);
        
        // 创建一个浏览器对象,以把POST对象向服务器发送,并返回响应消息
        try {
HttpResponse response = client.execute(post);
if (response.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
            // 封装了服务器端返回的数据
            HttpEntity responseEntity = response.getEntity();
            
            //*******这里是对服务器返回的session进行记录的操作,以获取sessionId
//             CookieStore mCookieStore = ((DefaultHttpClient) client).getCookieStore();
//             List<Cookie> cookies = mCookieStore.getCookies();
//             for (int i = 0; i < cookies.size(); i++) {
//                 // 如果cookies头和"JSESSIONID" 就记录sessionID
//                 if ("JSESSIONID".equals(cookies.get(i).getName())) {
//                     String sessionId = cookies.get(i).getValue();
//                     break;
//                 }
//             }
            //*******完成
            
            InputStream is = responseEntity.getContent();
            
            return changeInputStream(responseEntity.getContent(), encode);
        }
} catch (ClientProtocolException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
        
        
     return "";
    }

/**
     * 
     * @param inputStream
     * @param encode
     * @return
     */
    private static String changeInputStream(InputStream inputStream,
            String encode) {
 
        ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
        int len = 0;
        byte[] date = new byte[1024];
        String result = "";
        try {
 
            while ((len = inputStream.read(date)) != -1) {
 
                outputStream.write(date, 0, len);
            }
            result = new String(outputStream.toByteArray(), encode);
             
            return result;
 
        } catch (IOException e) {
            e.printStackTrace();
        }
 
        return null;
    }

需要的参数client,new 一个就可以了。

DefaultHttpClient client = new DefaultHttpClient();

类似参考网上有很多,不过大都是你转载他得,他转载你的,能用的不多。

温馨提示:内容为网友见解,仅供参考
第1个回答  2015-08-18
java学习小组,希望可以一起学习进步,Java框架平台研发 378 437 335

...急急急求大神直接附上详细代码,非常感谢你了
给一种方式做参考,我这边类似。是将A作为客户端,上传文件到服务器B,服务器B以struts接受请求做处理。使用httpclient。\/** * 将文件上传到服务端,并接收其返回信息 * @param clientDefaultHttpClient * @param url服务器url:如:http:\/\/localhost:8080\/test\/upload.action * @param ...

用Java实现在两台电脑之间的文件传输
使用Socket可以做到,不过直接编程一般都是在局域网内,如果要在不同局域网间通信,需要使用一台有公网IP的服务器,可以电脑A和电脑B同时连接服务器,然后A向服务器传递文件,服务器再将文件转发电脑B。也可以使用打洞的方式使A、B互联,此时服务器的作用是辅助打洞。A、B向服务器发送信息后socket不要...

java 中怎样把一个文件从一个包中转移到另外一个包里面
\/** * 移动文件到指定目录 * @param oldPath String 如:c:\/fqf.txt * @param newPath String 如:d:\/fqf.txt *\/ public static void moveFolder(String oldPath, String newPath) { copyFolder(oldPath, newPath); delFolder(oldPath); } \/** * 复制整个文件夹内容 * ...

java如何实现将FTP文件转移到另一个FTP服务器上
通过FTPClient连接上fs1,然后下载(可以循环批量下载)到本地服务器,保存到一个临时目录。下载完成后,FTPClient断开与fs1的连接,记得必须logout。本地服务器通过FileInputStream将刚下载到临时目录的文件读进来,得到一个List<File>集合。通过FTPClient连接上fs2,循环List<File>集合,将文件上传至fs2的...

java实时监控局域网共享文件夹并复制文件到指定位置
首先要保证电脑A和电脑B网络可到达 然后在java里用一个线程(死循环)一直“监控”电脑A里的共享文件夹的大小 只要一有变化就让电脑A里的共享文件夹下的所有文件复制一份到电脑B的共享文件夹下 然后把电脑A里的共享文件夹下的文件删除

JAVA 把文件传到服务器...
\/\/假设你把文件放到webroot底下的java文件里面 url = new URL(destUrl);httpUrl = (HttpURLConnection) url.openConnection();\/\/连接指定的网络资源 httpUrl.connect();\/\/获取网络输入流 bis = new BufferedInputStream(httpUrl.getInputStream());...得到流后下面你自己想怎么操作就怎么操作了 对于...

怎样用JAVA编写把一个文件夹中的文件复制到一个指定的文件夹用完文件后...
import java.io.PrintWriter;import java.net.URL;import java.util.StringTokenizer;public class FileUtil { \/** * 读取文本文件内容 * * @param filePathAndName * 带有完整绝对路径的文件名 * @param encoding * 文本文件打开的编码方式 * @return 返回文本文件的内容 *\/ public static String readTxt(...

java中怎样按字节读取文件并复制到另一个文件夹
\/** * 把一个文件夹中的文件复制到一个指定的文件夹 * @author young * *\/import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;public class CopyFile {public static void main(String[] args) {\/* 指定源exe文件...

Java批量打印功能实现:批量打印服务器上某一文件夹下的所有文件,如何用...
我觉得可以弄一个虚拟的 就是下载在内存或者缓存中 然后打印从内存中取到文件 当关闭页面的时候调用一个方法 删除内存或者缓存中的文件 不知道这个建议咋样 lz试试

Java里面怎么A服务器的接口读取B服务器的文件啊?
需要用到Socket通信、流操作

相似回答