Java 2台のサーバ間でファイルを転送
参照
HttpClientでPOSTコミットフォームをシミュレートする
参照
送信側でコミットする方法
参照
受信側が受信する方法
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();
}
}
}