javascript
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
原因:在部署項目到Tomcat的時候,路勁部署到了Tomcat所在的目錄下,而不是本項目所在的目錄下
解決:更改部署路徑
補充:上面兩個路徑的不同
① /springmvc_day02_03_fileuploadeserver:war
? 上傳的文件會存放在 Tomcat 所在的目錄下
?
② /springmvc_day02_03_fileuploadeserver:war exploded
? 上傳的文件會存放在當前目錄下
[3] 400 Bad Request
原因:路徑中出現了中文
解決:路徑中不要出現中文
[4] 409 Conflict
原因:我們下面的代碼沒有創建文件上傳對應的文件夾,服務器找不到目錄
/**
* 跨服務器上傳
* @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 文件夾
總結
以上是生活随笔為你收集整理的tomcat上传文件到不同服务器,使用SpringMVC进行跨服务器上传文件出现的那些坑的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 袁冰妍公司偷漏税被罚97万:不到1个月本
- 下一篇: gradle idea java ssm