网站信息化建设方案无锡网站优化
既然跨服务器,就要开启两个服务器,这里使用两个Tomcat代表两个服务器
文章目录
1.建立图片要上传到的服务器:FileUpload
2.建立上传图片的服务器:Tomcat 9.0.24
3.在Tomcat 9.0.24上部署文件上传的项目,写代码
3.1导入相应jar包
3.2 写一个前端页面
3.3 写后台上传文件代码
1.建立图片要上传到的服务器:FileUpload
2.建立上传图片的服务器:Tomcat 9.0.24
3.在Tomcat 9.0.24上部署文件上传的项目,写代码
3.1导入相应jar包
<dependencies><dependency><groupId>commons-fileupload</groupId><artifactId>commons-fileupload</artifactId><version>1.3.1</version></dependency><dependency><groupId>commons-io</groupId><artifactId>commons-io</artifactId><version>2.4</version></dependency><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></dependencies>
3.2 写一个前端页面
<h3>Springmvc跨服务器文件上传</h3><form action="/user/fileUpload2" method="post"enctype="multipart/form-data">选择文件:<input type="file" name="upload"/><br><input type="submit" value="上传"/></form></body>
3.3 写后台上传文件代码
//跨服务器文件上传
@Controller
@RequestMapping("/user")
public class UserController2 {@RequestMapping("/fileUpload2")public String fileUpload(MultipartFile upload) throws Exception {System.out.println("文件上传");//定义文件上传服务器路径String path = "http://localhost:9090/uploads/";//获取到上传文件的名称String fileName = upload.getOriginalFilename();//防止文件上传被覆盖,将文件名设置为唯一的String uuid= UUID.randomUUID().toString().replace("-","");fileName = uuid+"_"+fileName;//创建客户端对象Client client = Client.create();//和图片服务器进行连接WebResource resource = client.resource(path + fileName);//上传文件resource.put(upload.getBytes());return "success";}
}
这里会报一个异常,代码为405,是因为Tomcat的原因,需要到Tomcat的安装目录的配置文件的web.xml文件中添加一个参数
<init-param><param-name>readonly</param-name><param-value>false</param-value>
</init-param>
其次,还有可能报一个异常为500,NoClassDefFoundError,这个异常是因为虽然导入了依赖,但是没有打入。
最后可能还会报一个异常,是因为
当以上的异常都解决以后,那么: