Spring MVC使用篇(十四)—— 文件上传与下载

1、上传单个文件

1.1 导入文件上传依赖jar包

  Spring MVC实现文件上传,需要再添加两个jar包。一个是文件上传的jar包,一个是其所依赖的IO包。这两个jar包,均在Spring支持的org.apache.commons中。具体jar包如下:
在这里插入图片描述

1.2 创建上传页面

  在WEB-INF/jsp下创建名为“upload”的文件夹用来存放文件上传页面,在该文件夹下创建名为“upload.jsp”的具有文件上传功能的JSP页面。其表单的设置需要注意,method属性为POST,enctype属性为multipart/form-data。另外,需要注意file表单元素的参数名称,Controller中需要使用,具体代码如下:

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>文件上传</title>
</head>
<body>
    <h1>单文件上传演示案例</h1>
    <form action="doUploadSingle.action" method="post" enctype="multipart/form-data">
        请选择上传的图片:<input type="file" name="photo" /><br/>
        <input type="submit" value="上传单个文件" />
    </form>
</body>
</html>

1.3 定义处理器(Controller)

  提前在“out/artifacts/SSMLearn_war_exploded/”路径下创建名为“images”的文件夹用来保存上传到服务器上的图片。路径如下图所示:
在这里插入图片描述
  然后,在“com.ccff.controller”下创建名为“UploadController”的控制器。具体代码如下所示:

package com.ccff.controller;

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.servlet.ModelAndView;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import java.io.File;
import java.io.IOException;
import java.util.UUID;

@Controller
@RequestMapping("/UploadTest")
public class UploadController {
   
   
    @RequestMapping("/upload")
    public String upload(){
   
   
        return "upload/upload";
    }

    @RequestMapping("/doUploadSingle")
    public String doUploadSingle(MultipartFile photo, HttpServletRequest request, Model model) throws IOException {
   
   
        if (!photo.isEmpty()){
   
   
            //服务端的images目录需要手动先创建好
            String path = request.getServletContext().getRealPath("/images");
            //获取原始文件名
            String fileName = photo.getOriginalFilename();
            //新的图片名称(UUID的随机名称)
            String newFileName = UUID.randomUUID() + "-" + fileName;
            //限制文件上传类型
            if (fileName.endsWith(".jpg") || fileName.endsWith(".png") || fileName.endsWith("gif")){
   
   
                File file = new File(path,newFileName);
                //完成上传
                photo
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值