网创优客建站品牌官网
为成都网站建设公司企业提供高品质网站建设
热线:028-86922220
成都专业网站建设公司

定制建站费用3500元

符合中小企业对网站设计、功能常规化式的企业展示型网站建设

成都品牌网站建设

品牌网站建设费用6000元

本套餐主要针对企业品牌型网站、中高端设计、前端互动体验...

成都商城网站建设

商城网站建设费用8000元

商城网站建设因基本功能的需求不同费用上面也有很大的差别...

成都微信网站建设

手机微信网站建站3000元

手机微信网站开发、微信官网、微信商城网站...

建站知识

当前位置:首页 > 建站知识

使用SpringMVC怎么实现跨服务器上传文件

这篇文章给大家介绍使用SpringMVC怎么实现跨服务器上传文件,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

成都创新互联公司是一家以成都网站建设、网页设计、品牌设计、软件运维、成都网站推广、小程序App开发等移动开发为一体互联网公司。已累计为葡萄架等众行业中小客户提供优质的互联网建站和软件开发服务。

一、上传服务器:

1、pom文件(使用jersey插件)


    
      commons-fileupload
      commons-fileupload
      1.3.1
    
    
      commons-io
      commons-io
      2.4
    
    
      commons-codec
      commons-codec
      1.9
   
 
 
 
 
   com.sun.jersey
   jersey-client
   1.18.6
 
 
 
   com.sun.jersey
   jersey-core
   1.18.6
 
 
 
   org.glassfish.jersey.core
   jersey-common
   2.26
 

2、前端页面:


 多个文件: 
 

3、后台controller:

/**
 * 多文件,跨服务器上传
 * @param request
 * @return
 */
 @ResponseBody
 @RequestMapping("/uploadImg")
 public String fileUpload(MultipartHttpServletRequest request){
 JSONObject joson = new JSONObject();
 String serverAddress = "http://172.xxx.xxx.xxx:8080";//服务器地址
 String folder = "/upload/";//文件夹名称
 String fullPaths = "";//绝对路径
 String reletivePaths = "";//相对路径
 // 创建jesy服务器
 Client client = Client.create();
 // 获取文件名字
 Iterator fileNames = request.getFileNames();
 List fileNameList = new ArrayList();
    List relaPathList = new ArrayList();
    List realPathList = new ArrayList();
 try {
  while (fileNames.hasNext()) {//判断多文件
  // 把fileNames集合中的值打出来
  String fileName = fileNames.next();
  // request.getFiles(fileName)方法即通过fileName这个Key, 得到对应的文件集合列表.
  // 只是在这个Map中, 文件被包装成MultipartFile类型
  List fileList = request.getFiles(fileName);
  if (fileList.size() > 0) {
   // 遍历文件列表
   Iterator fileIte = fileList.iterator();
   while (fileIte.hasNext()) {
   // 获得每一个文件
   MultipartFile multipartFile = fileIte.next();
   // 截取文件的后缀名(.jpg)
   String originalFilename = multipartFile.getOriginalFilename();//原始文件名
   String subString = originalFilename.substring(originalFilename.indexOf("."));//文件名后缀
   //System.out.println("原始文件名:"+originalFilename+";文件后缀名:"+subString);
   // 将文件对象转换为字节
   byte[] fileBytes = multipartFile.getBytes();
   // 生成唯一的一个字符串名称(带后缀)
   String newFilename = UUID.randomUUID().toString()+subString;
   //System.out.println("唯一文件名(带后缀):"+newFilename);
   // 开始上传文件
   // 拼接保存的路径(相对路径)
   reletivePaths = folder+newFilename;
   // 拼接最终保存的路径(绝对对路径)
   fullPaths = serverAddress+reletivePaths;
   //把文件关联到远程服务器
   WebResource webResource = client.resource(fullPaths);
   // 上传
   webResource.put(String.class, fileBytes);
   fileNameList.add(newFilename);//文件名
           relaPathList.add(reletivePaths);//相对路径
           realPathList.add(fullPaths); //真实完整路径
   }
   joson.put("success", 1);
   joson.put("error", "");
   joson.put("fileNameList", fileNameList);
   joson.put("relaPathList", relaPathList);
   joson.put("realPathList", realPathList);
  } else {
   joson.put("success", 0);
   joson.put("error", "上传失败");
  }
  }
 } catch (UniformInterfaceException e) {
  // TODO Auto-generated catch block
  e.printStackTrace();
  joson.put("success", 0);
  joson.put("error", "上传失败");
 } catch (ClientHandlerException e) {
  // TODO Auto-generated catch block
  e.printStackTrace();
  joson.put("success", 0);
  joson.put("error", "上传失败");
 } catch (IOException e) {
  // TODO Auto-generated catch block
  e.printStackTrace();
  joson.put("success", 0);
  joson.put("error", "上传失败");
 }
 return joson.toString();
 }

二、存储图片文件服务器:

1、Tomcat的conf目录下的web.xml文件的大概100行添加如下几行(这要是不打开就会报错)

 
    default
    org.apache.catalina.servlets.DefaultServlet
    
      debug
      0
    
 
    
 
  readonly
      false
 
    
    
      listings
      false
    
    1

2、在该Tomcat的/webapps/ROOT目录下创建一个upload目录,用来存放上传的文件

3、启动Tomcat静等着上传服务器那边的请求

关于使用SpringMVC怎么实现跨服务器上传文件就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。


网站栏目:使用SpringMVC怎么实现跨服务器上传文件
链接地址:http://bjjierui.cn/article/ijiooh.html

其他资讯