SpringMVC之跨服务器上传文件
程序员文章站
2022-06-02 14:11:29
...
1.准备工作:
- 首先准备两个tomcat服务器,创建两个Maven管理的JavaWeb项目,分别将这个两个项目部署到Tomcat服务器上,在Tomcat服务器的web.xml中加入以下配置,使接收文件的目标服务器可以支持写入操作
- 导入开发需要的jar包
<!--跨服务器文件上传所需jar包-->
<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>
<!--文件上传必须的jar包-->
<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>
2.代码实现:
<form action="upload/tomcatFile" method="post" enctype="multipart/form-data">
选择文件:<input type="file" name="uploads"><br>
<input type="submit" value="上传">
</form>
后端实现:
在目标项目的 target\你的项目名 目录下创建一个uploads文件夹,将文件上传至此
文件上传成功,最终跳转到一个success.jsp页面
@Controller
@RequestMapping(path = "/upload")
public class FileUploadController {
@RequestMapping(path = "/tomcatFile")
public String FileUpload3(MultipartFile uploads) throws Exception{
System.out.println("springmvc文件上传....");
//上传文件的目标服务器的路径
String path="http://localhost:9999/fileuploadServer_war_exploded/uploads/";
//获取上传文件名称
String filename=uploads.getOriginalFilename();
//把文件的名称设置成唯一值
String uuId=UUID.randomUUID().toString().replace("-", "");
filename=uuId+"_"+filename;
//创建客户端对象
Client client=Client.create();
//和图片服务器进行连接
WebResource webResource=client.resource(path+filename);
//上传图片文件
webResource.put(uploads.getBytes());
return "success";
}
}
3.效果
index.jsp页面
选择上传,就会在uploads文件夹下发现你上传的文件了.
下一篇: SpringBoot 文件上传和下载