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 程序不包含适用于入口点的静态Main方法
  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记