zoukankan      html  css  js  c++  java
  • SpringMVC 单个文件上传及调用

    SpringMVC 在实际使用中很容易碰到文件上传服务器及调用服务器文件的需求,我在开发项目的时候也碰到了这个问题。我将以 JPG 格式的图片为例来介绍这两个功能的实现。

    文件的上传

    1.form 标签的设置
    首先,要更该 form 标签的属性(重点是 enctype 与 method 需如代码所示。):

    <form action="" enctype="multipart/form-data" method="post">

    我建议用 Submit 的方式提交表单,因为我比较懒☺。

    2.Controller 的处理
    先贴上代码:

        @RequestMapping(value = "/receiveFiles", method = {RequestMethod.POST})
        @Transactional
        public String ReceiveFiles(HttpServletRequest request,UploadedImageFile file) throws Exception {
            //图片上传至服务器并保存图片路径
            if(!file.getPhoto().isEmpty())
            {
                //防止图片重复,对图片进行重命名
                String name = RandomStringUtils.randomAlphanumeric(10);
                String newFileName = name + ".jpg";
                //根据 request 获取服务器绝对路径,并新建一个空白文件
                File newFile = new File(request.getServletContext().getRealPath("/upload"), newFileName);
                newFile.getParentFile().mkdirs();
                //将上传图片保存至空白文件
                file.getPhoto().transferTo(newFile);
                //保存图片名称(保存在某个对象中,还是某个文件中需要你自己实现,调用该文件时要用到)
                savaDirs(newFileName);
            }
            //重定向
            return "your direct";
        }

    主要是图片保存到一个指定的路径下,我是指定为 “/upload” 下,然后只要保存好图片的名字,等会儿就能方便调用了。

    3.springMVC.xml 的配置

        <!-- 配置多媒体文件解析器,开启文件上传 -->
        <!-- 文件上传 -->
        <bean id="multipartResolver"
              class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
            <!-- 设置上传文件的最大尺寸为5MB,最小单位为字节-->
            <property name="maxUploadSize">
                <value>5242880</value>
            </property>
        </bean>

    以上就是图片的上传。

    文件的调用

    1.springMVC.xml 的配置

        <!--静态资源解析包括 :js、css、img、..-->
        <!--<mvc:resources mapping="/js/" location="/js/**"/>-->
        <!--<mvc:resources mapping="/css/" location="/css/**"/>-->
        <!--<mvc:resources mapping="/fonts/" location="/fonts/**"/>-->
        <!--加载静态资源(images)-->
        <mvc:resources mapping="/images/" location="/upload/**"/>
        <mvc:default-servlet-handler/>

    需要配置 mvc:resources 来进行静态资源的访问。

    2.web.xml 的配置

          <!--在默认情况下允许访问jpg静态资源,必须加在springmvc的servlet之前-->
          <servlet-mapping>
            <servlet-name>default</servlet-name>
            <url-pattern>*.jpg</url-pattern>
          </servlet-mapping>

    web.xml 也需配置正确,不然 jpg 文件还是可能访问不到。

    3.Img 标签的设置
    就和正常调用图片的方式一样,只要给出完整的路径就可以了,我使用的是 EL 表达式来拼接路径

    <img src="${pageContext.request.contextPath}/upload/${uploadImg.name}" id="uploadImg"/>

    其中, ${uploadImg.name} 的 uploadImg 是我传给网页的一个自定义对象,你的自定义对象取决于你自己想怎么实现。
    以上,就是全部内容。

  • 相关阅读:
    python反爬之js混淆-字符串映射
    How to Provide a Default Trace for a Cloud Application
    Reset Peak Used Memory
    SAP 课程
    note 1639578 and 1622837
    SAP License error
    SAP BASIS-System Move
    初识Agile(敏捷项目管理)
    SAP HANA升级
    SAP FIORI 部署
  • 原文地址:https://www.cnblogs.com/Sherlock-J/p/12925989.html
Copyright © 2011-2022 走看看