1. .returned a response status of 405 Method Not Allowed
解决方法:
Not Alloweed说明这个写入不被允许。则需要修改Tomcat服务器的web.xml(在你的Tomcat安装目录下的conf文件夹下),使得服务器允许写入.
找到web.xml下面这段代码,加入
<init-param>
<param-name>readonly</param-name>
<param-value>false</param-value>
</init-param>
修改后如下所示:
<servlet>
<servlet-name>default</servlet-name>
<servlet-class>org.apache.catalina.servlets.DefaultServlet</servlet-class>
<init-param>
<param-name>debug</param-name>
<param-value>0</param-value>
</init-param>
<init-param>
<param-name>listings</param-name>
<param-value>false</param-value>
</init-param>
<init-param>
<param-name>readonly</param-name>
<param-value>false</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
2. .returned a response status of 400 这里和上传文件名称有关系,上传文件名称不能含有中文.如果要解决包含中文文件名的文件上传,则需要将文件名进行URL编码.参考代码如下.
@RequestMapping("/testUploadMVCServer")
public String testUploadMVCServer(MultipartFile uploads2) throws IOException {
System.out.println("SpringMVC文件上传");
//设置上传文件路径
String path = "http://localhost:8081/file_upload_war_exploded/fileuploads/" ;
//获取上传文件名称
String filename = uploads2.getOriginalFilename() ;
//进行URL编码
filename = URLEncoder.encode(filename,"UTF-8");
//把文件名称设置唯一的uid
String uid = UUID.randomUUID().toString().replace("-","" );
filename = uid+"_"+filename ;
//完成文件上传
//1. 创建客户端对象 和图片服务器进行连接
Client client = Client.create() ;
//和图片服务器进行连接,获取到服务器资源
WebResource webResourc = client.resource(path+filename) ;
//上传文件
webResourc.put(uploads2.getBytes());
return "success" ;
}