原因:多个服务器供给多个客户端,每个服务器负责专门的一部分,分工合作,所以出现跨服务器。

跨服务器准备

  1. 在上传文件依赖的jar包基础上还需要(客户端)导入springMVC跨服务器上传文件
  2. 创建新的项目,启动新的tomcat配置端口号为9090,JMX port为1090。部署项目后,在webapp下创建uploads文件(注意事项:idea创建文件夹,如果文件夹为空,就不会自动在磁盘里创建文件夹,所以需要手动创建,或者在文件夹内创建一个test.jsp使得文件夹得以创建。如若不然,直接上传文件跨服务器,会报409错误)
  3. 为了防止405错误,打开TOMACT文件夹内,cof文件夹下,web.xml中,114行,加入<init-param> <param-name>readonly</param-name> <param-value>false</param-value> </init-param>springMVC跨服务器上传文件
    并将初始化时的listings改为false。springMVC跨服务器上传文件
    此时tomcat就运行方法运行了。
    4.至此,环境搭建完成,开始写Controller:
    1.创建一个跨服务器的路径(注意localhost:9090/后要加设定的项目名后,再加uploads/,之所以要加/是方便后续写文件名的时候,不用再添加/了。String path = "http://localhost:9090/testTomcat/uploads/";/
    2.获取原文件名:String originalFilename = upload.getOriginalFilename();
    3.获取UUID创建的随机名:String replace = UUID.randomUUID().toString().replace("-", "");
    4.文件名=原文件名+"_"+随机名:String filenName=originalFilename+"_"+replace;
    5.创建client(客户端对象):Client client = Client.create();
    6.客户端对象绑定(路径+文件名(此时只是文件名))返回一个类似路径的类:WebResource resource = client.resource(path + filenName);
    7.在此路径上put方法上传upload参数(也就是页面传来的数据):resource.put(upload.getBytes());
    总体示例:springMVC跨服务器上传文件

相关文章: