tomcat上传文件到不同服务器,使用SpringMVC进行跨服务器上传文件出现的那些坑

[1] 405 Method Not Allowed

原因是因为Servlet默认是只读的,也就是写不进去(文件上传不过来)

所以要在文件服务器的 web.xml 对 Servlet 进行配置

defaultServlet

org.apache.catalina.servlets.DefaultServlet

debug

0

readonly

false

listings

false

1

defaultServlet

/

这里可能会报错说找不到 org.apache.catalina.servlets.DefaultServlet

这里需要在文件服务器项目中的pom.xml 中添加坐标

org.apache.tomcat

tomcat-catalina

9.0.34

[2] 404 Not Found

c733ece3e7087a5c64d2e8d88ce846c0.png

原因:在部署项目到Tomcat的时候,路劲部署到了Tomcat所在的目录下,而不是本项目所在的目录下

解决:更改部署路径

313ce14044b7973267be95fad8a7d87a.png

补充:上面两个路径的不同

① /springmvc_day02_03_fileuploadeserver:war

​ 上传的文件会存放在 Tomcat 所在的目录下

0cbcdc98dd19886cebf693c3287b1e50.png

② /springmvc_day02_03_fileuploadeserver:war exploded

​ 上传的文件会存放在当前目录下

a718991de070f1ee639371426e714059.png

[3] 400 Bad Request

05cf1ac988787c186fea30b1da6b5f4a.png

原因:路径中出现了中文

解决:路径中不要出现中文

[4] 409 Conflict

a523994c683788199d27e2e2c7273e14.png

原因:我们下面的代码没有创建文件上传对应的文件夹,服务器找不到目录

/**

* 跨服务器上传

* @param upload

* @return

* @throws Exception

*/

@RequestMapping("/fileUpload3")

public String fileUpload3(MultipartFile upload) throws Exception {

System.out.println("SpringMVC跨服务器文件上传...");

//定义上传文件的服务器路径

String path = "http://localhost:9091/springmvc_day02_03_fileuploadeserver_war_exploded/uploads/";

//说明上传文件项

//获取上传文件的名称

String filename = upload.getOriginalFilename();

String uuid = UUID.randomUUID().toString().replace("-", "");

filename = filename + "_" + uuid;

//完成跨服务器文件上传

//1. 创建一个客户端对象

Client client = Client.create();

//2. 和图片服务器进行连接

WebResource webResource = client.resource(path + filename);

//3. 上传文件

webResource.put(upload.getBytes());

return "success";

}

解决:在文件服务器项目中添加相应的 uploads 文件夹

2e58300106e7dbda7ae9e96f27bd401b.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值