(1)form表单的enctype取值是:multipart/form-data,method取值是:post,提供一个文件选择域
(2)springmvc方式
<h3>springmvc文件上传方式</h3>
<form action="user/fileUpload2" method="post" enctype="multipart/form-data">
选择文件<input type="file" name="upload"/><br>
<input type="submit" value="上传">
</form>
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<property name="maxUploadSize" value="10485760"/>
</bean>
id="multipartResolver",id的名字必须是这个名字:multipartResolver
MultipartFile upload的参数名必须与表单<input type="file" name="upload"/>name的名字一致
(3)跨服务器传文件
- 启动两个tomcat,是两个真实的tomcat服务器
- 导包
<dependency>
<groupId>com.sun.jersey</groupId>
<artifactId>jersey-core</artifactId>
<version>1.18.1</version>
</dependency>
<dependency>
<groupId>com.sun.jersey</groupId>
<artifactId>jersey-client</artifactId>
<version>1.18.1</version>
</dependency>
@RequestMapping("/fileUpload3")
public String fileUpload3(MultipartFile upload) throws Exception {
System.out.println("跨服务器springmvc文件上传。。。。。");
String path = "http://localhost:9090/fileuploadserver/uploads";
//说明是上传文件项,获取上传文件的名称
String filename = upload.getOriginalFilename();
//文件名称设置成UUID
String uuid = UUID.randomUUID().toString().replace("-", "");
filename = uuid + "_" + filename;
Client client = Client.create();
WebResource webResource = client.resource(path +"/" + filename);
webResource.put(upload.getBytes());
return "success";
}
SpringMVC跨服务器传输文件出现400错误解决
答案很简单 ,接收文件的另一个服务器不支持中文,也就是说文件名不能写中文否则就会报400错误。
解决方案无非就是两种,让文件服务器支持utf-8编码或者将文件名变成英文。
SpringMVC跨服务器传输文件:returned a response status of 405 Method Not Allowed
在你的Tomact服务器安装目录下的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>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)