首页 > 编程语言 > 详细

SpringMVC跨服务器方式的文件上传 —— SpringMVC(十)

时间:2020-04-11 14:47:35      阅读:76      评论:0      收藏:0      [点我收藏+]

分服务器的目的

  在实际开发过程中,会有很多处理不同功能的服务器。

    应用服务器:负责部署我们的应用。

    数据库服务器:运行我们的数据库。

    缓存和消息服务器:负责处理大并发访问的缓存和消息。

    文件服务器:负责存储用户上传文件的服务器。

  分服务器的目的是让服务器各司其职,从而提高我们项目的运行效率。

 

准备工作

  准备两个tomcat服务器,并创建一个用于存放图片的Web工程。

  在文件服务器的tomcat配置中加入,允许读写操作。

<servlet>
    <init-param>
        <param-name>readonly</param-name>
        <param-value>false</param-value>
    </init-param>
</servlet>

  添加jar包:

    commons-fileupload-1.3.1.jar

    commons-io-2.4.jar

    jersey-client-1.18.1.jar

    jersey-core-1.18.1.jar

 

编写控制器实现上传图片

@Controller("fileUploadController2")
public class FileUploadController2 {
    public static final String FILESERVERURL = "http://localhost:9090/day06_spring_image/uploads/";
    /**
    * 文件上传,保存文件到不同服务器
    */
    @RequestMapping("/fileUpload2")
    public String testResponseJson(String picname,MultipartFile uploadFile) throwsException{
        //定义文件名
        String fileName = "";

        //1.获取原始文件名
        String uploadFileName = uploadFile.getOriginalFilename();

        //2.截取文件扩展名
        String extendName = 
        uploadFileName.substring(uploadFileName.lastIndexOf(".")+1, uploadFileName.length());

        //3.把文件加上随机数,防止文件重复
        String uuid = UUID.randomUUID().toString().replace("-", "").toUpperCase();

        //4.判断是否输入了文件名
        if(!StringUtils.isEmpty(picname)) {
            fileName = uuid+"_"+picname+"."+extendName; 
        }else {
            fileName = uuid+"_"+uploadFileName; 
        }
        System.out.println(fileName);

        //5.创建 sun 公司提供的 jersey 包中的 Client 对象
        Client client = Client.create();

        //6.指定上传文件的地址,该地址是 web 路径
        WebResource resource = client.resource(FILESERVERURL+fileName);

        //7.实现上传
        String result = resource.put(String.class,uploadFile.getBytes());
        System.out.println(result);

        return "success"; 
    } 
}

 

编写jsp页面

<form action="fileUpload2" method="post" enctype="multipart/form-data">
    名称:<input type="text" name="picname"/><br/>
    图片:<input type="file" name="uploadFile"/><br/>
    <input type="submit" value="上传"/>
</form>

 

配置解析器

<!-- 配置文件上传解析器 --> 
<bean id="multipartResolver" <!-- id 的值是固定的-->
    class="org.springframework.web.multipart.commons.CommonsMultipartResolver">

  <!-- 设置上传文件的最大尺寸为 5MB --> 
  <property name="maxUploadSize"> 
    <value>5242880</value>
  </property>

</bean>

 

SpringMVC跨服务器方式的文件上传 —— SpringMVC(十)

原文:https://www.cnblogs.com/guancangtingbai/p/12679321.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!