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