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); }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报