wuruize888 2017-09-16 00:19 采纳率: 66.7%
浏览 1772
已采纳

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

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

  • 写回答

3条回答

  • cashT 2017-09-16 01: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);
    } 
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 对于相关问题的求解与代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 信号傅里叶变换在matlab上遇到的小问题请求帮助
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料
  • ¥15 使用R语言marginaleffects包进行边际效应图绘制
  • ¥20 usb设备兼容性问题
  • ¥15 错误(10048): “调用exui内部功能”库命令的参数“参数4”不能接受空数据。怎么解决啊
  • ¥15 安装svn网络有问题怎么办