0
点赞
收藏
分享

微信扫一扫

远程文件上传

以沫的窝 2022-01-14 阅读 37

远程文件上传目的是为了多个项目之间共享文件资源:

 远程文件上传,是指多个项目每次将文件上传到其他项目上,这样来实现文件的统一管理,如上图,我们首先需要搭建一个资源项目,其他项目每次上传文件都上传到资源项目中。

该工程主要用来接收其他项目上传的文件,工程创建完成后,用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>

这样就可以实现把资源上传到另外一个工程,实现多个工程共享静态资源。

举报

相关推荐

0 条评论