springMVC文件上传

1、利用Maven自动导入jar包

<dependency>
	<groupId>commons-fileupload</groupId>
	<artifactId>commons-fileupload</artifactId>
	<version>1.3.3</version>
</dependency>
<dependency>
	<groupId>commons-io</groupId>
	<artifactId>commons-io</artifactId>
	<version>2.5</version>
</dependency>

没有使用Maven的小伙伴只能自己手动导入了。

2、前端 html 编写

index.html

<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<form th:action="@{/upload}" method="post" enctype="multipart/form-data">
    <input name="file" type="file"><br>
    <input type="submit" value="提交">
</form>
</body>
</html>

注意form表单的enctype一定要设为 multipart/form-data
multipart/form-data表示提交的数据以多段(每一个表单项一个数据段)的形式进行拼接,然后以二进制流的形式发送给服务器。可以在网页的请求体查看(审查元素)这些数据。

success.html

<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<h1>success</h1>
</body>
</html>

3、编写 java 实现

@Controller
public class FileController {
    @RequestMapping("upload")
    public String upload(MultipartFile file,HttpSession session) throws IOException {
        // 获取上传文件的文件名
        String filename = file.getOriginalFilename();
        // 处理文件重名问题
        String suffix = filename.substring(filename.lastIndexOf("."));
        // 用通用唯一识别码
        filename = UUID.randomUUID().toString() + suffix;
        // 获取服务器中文件存储目录的路径
        ServletContext context = session.getServletContext();
        String filedir = context.getRealPath("file");
        File f = new File(filedir);
        // 目录不存在则创建
        if (!f.exists()) {
            f.mkdir();
        }
        // 最终文件存储位置
        String finalpath = filedir + File.separator + filename;
        // 文件上传
        file.transferTo(new File(finalpath));
        return "success";
    }
}

4、配置文件 springMVC.xml

IOC容器自动获取该该对象,且必须以 id (即 byName)的形式获取

<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"/>

5、演示

(1)进入首页

在这里插入图片描述

(2)选择文件

在这里插入图片描述

(3)上传文件成功

在这里插入图片描述

(4)文件已经在指定文件目录下

在这里插入图片描述

(5)查看图片

在这里插入图片描述

(6)再上传一个相同的图片

在这里插入图片描述
在这里插入图片描述
文件上传(Servlet)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值