2 u014353911 u014353911 于 2017.09.16 08:19 提问

java web项目,服务器间互传文件改用哪个方法比较好?

java web项目,服务器间互传文件改用哪个方法比较好?比如传的文件分为3mb以下和3mb以上两种,该用哪种方式呢?求解答和相关资料。谢谢

3个回答

cashT
cashT   2017.09.16 09:52
已采纳
1、访问A的servlet,我们在这个Servlet里面取到这个文件,这个很容易是吧
2、在A的servlet将取到的文件(inputstrema格式),以post的形式,模拟表单提交给B的servlet
3、在B的servlet里面接收,就像接收普通的表单上传的一样

下面是一些上传和接收的核心代码,使用的httpclient

A里面的上传:
HttpClient httpclient = new DefaultHttpClient();
String url = “这里是B的servlet的访问的地址,全地址”;
HttpPost httppost = new HttpPost(url);
// 一个本地的文件
InputStreamBody fileis = new InputStreamBody(is, fileName);
// 多部分的实体
MultipartEntity reqEntity = new MultipartEntity();
// 增加
reqEntity.addPart("bin", fileis);
// 设置
httppost.setEntity(reqEntity);
HttpResponse responses = null;
try {
responses = httpclient.execute(httppost);
} catch (ClientProtocolException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
if (Validator.isNotNull(responses)) {
int httpstatus = responses.getStatusLine().getStatusCode();
if(httpstatus!=200){
System.out.println(url+"访问错误,http状态"+httpstatus);
}
}
B里面接收文件的核心代码,使用的fileupload
DiskFileItemFactory factory = new DiskFileItemFactory();
ServletFileUpload upload = new ServletFileUpload(factory);
List items = new ArrayList();

try {
items = upload.parseRequest(request);
} catch (FileUploadException e) {
e.printStackTrace();
}
FileItem file = null;
if (items.size()>0) {
file =(FileItem)items.get(0);
} 
Small_Mouse0
Small_Mouse0   Ds   Rxr 2017.09.16 10:55

不知道题主听说过restful

服务器和服务器之间传文件,和客户端服务器之间传文件就是一回事了

服务器A发一个带附件的http请求,,服务器B就像处理客户端请求的一样,文件就上传了。

qq_31179577
qq_31179577   2017.09.16 20:47

说场景。你这样问问题,怎么帮你解答。

Csdn user default icon
上传中...
上传图片
插入图片