远程文件上传目的是为了多个项目之间共享文件资源:
远程文件上传,是指多个项目每次将文件上传到其他项目上,这样来实现文件的统一管理,如上图,我们首先需要搭建一个资源项目,其他项目每次上传文件都上传到资源项目中。
该工程主要用来接收其他项目上传的文件,工程创建完成后,用tomcat发布起来,端口可以设置成18082和10992
<!--远程文件上传依赖包-->
<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>
上述依赖为远程文件上传依赖,需要执行远程文件上传的工程需要引入。
/**
* 远程文件上传
* @param request
* @return
* @throws Exception
*/
@RequestMapping(value = "/remote/upload")
public String remoteUpload(HttpServletRequest request, MultipartFile upload) throws Exception {
//获取到上传文件的名称
String filename = upload.getOriginalFilename();
//获取文件后缀
String extName = StringUtils.getFilenameExtension(filename);
//随机给上传的文件取名字
String newFileName = UUID.randomUUID().toString();
//创建客户端
Client client = Client.create();
//创建文件上传对象
WebResource webResource = client.resource("http://localhost:18082/uploads/"+newFileName+"."+extName);
//文件上传
webResource.put(upload.getBytes());
return "success";
}
(5)页面表单
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>文件上传</title>
</head>
<body>
<h3>远程文件上传</h3>
<form action="/file/remote/upload" method="post" enctype="multipart/form-data">
选择文件:<input type="file" name="upload"/><br/>
<input type="submit" value="上传文件"/>
</form>
</body>
</html>
<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>readonly</param-name>
<param-value>false</param-value>
</init-param>
<init-param>
<param-name>listings</param-name>
<param-value>false</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
这样就可以实现把资源上传到另外一个工程,实现多个工程共享静态资源。