Spring MVC-图片上传

不要把图片上传到工程目录,不方便进行工程维护。
这里我配置了一个虚拟目录,通过虚拟目录,访问硬盘上存储的图片目录。
我通过Eclipse设置了一个虚拟目录,其实也可以在Tomcat的配置文件中设置。
这里写图片描述

这里写图片描述
我在E:\picture里边放了一张图片a.jpg

现在启动服务器,访问http://localhost:8080/pic/a.jpg 就会显示出这张图片。
添加jar包

  • commons-fileupload-1.3.jar
  • commons-io-2.0.1.jar

配置图片上传解析器

在springmv.xml中配置

    <!-- 文件上传 -->
    <bean id="multipartResolver"
        class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
        <!-- 设置上传文件的最大尺寸为5MB -->
        <property name="maxUploadSize">
            <value>5242880</value>
        </property>
    </bean>

编写jsp页面

<body>

    <form action="${pageContext.request.contextPath }/test15.action" method="post" enctype="multipart/form-data">
        <c:if test="${pic!=null }">
            <img src="/pic/${pic}" width=100 height=100/>
            <br>
        </c:if>
        <input type="file" name="pictureFile">
        <input type="submit"/>
    </form>
</body>
@RequestMapping(value = "/test15")
public String test15(Model model, MultipartFile pictureFile) throws Exception {
    // 进行图片上传
    if (pictureFile != null && pictureFile.getOriginalFilename() != null
            && pictureFile.getOriginalFilename().length() > 0) {
        // 图片上传成功后,将图片的地址写到数据库
        String filePath = "E:/picture/";
        // 上传文件原始名称
        String originalFilename = pictureFile.getOriginalFilename();
        // 新的图片名称
        String newFileName = UUID.randomUUID() + originalFilename.substring(originalFilename.lastIndexOf("."));
        // 新文件
        String s=filePath + newFileName;
        File file = new java.io.File(s);

        // 将内存中的文件写入磁盘
        pictureFile.transferTo(file);
        model.addAttribute("pic", newFileName);
    }

    return "a.jsp";

}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 13
    评论
评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值